인공신경망 ann

Yoonsnee·2023년 2월 6일
0

딥 러닝(deep learning)은 다층구조 형태의 신경망을 기반으로 하는 머신 러닝(machine learning)의 한 분야로, 다량의 데이터로부터 높은 수준의 추상화 모델을 구축하고자 하는 기법입니다.

즉, 컴퓨터가 많은 양의 데이터를 이용해 마치 사람처럼 스스로 학습할 수 있게 하기 위해 인공 신경망(ANN: artificial neural network)을 기반으로 구축한 기계 학습 기술로, 인간의 뇌가 작동하는 것과 비슷한 원리라고 할 수 있습니다.

🏷 생물학적 뉴런(neuron, 신경세포)의 구조와 인공신경망

  • 인간의 뇌는 뉴런이라는 신경세포들로 구성됨
  • 수상돌기를 통해 외부 신호(자극)을 받아들이고 신경세포는 신호를 처리하며 시놉스를 통해 다른 신경세포로 전달함.

🏷 다층 신경망

  • 입력층(input layer):입력변수에 대응되는 노드로 구성, 노드의 수는 입력변수의 개수
  • 은닉층(hidden layer): 입력층으로부터 전달되는 변수값들의 선형결합을 비선형함수(활성화함수)로 처리, 출력층 또는 다른 은닉층에 전달하는 역할
  • 출력층(output layer): 출력변수에 대응되는 노드, 분류모형에서는 클래스의 수 만큼의 출력노드가 생성
  • 활성함수(activation function): 입력노드 혹은 은닉노드의 값에서 그 다음은 은닉층에 있는 노드값을 대응시키는 함수를 말하며 다음의 종류가 있음.
  • 은닉층에서 출력층으로 가는 활성함수는 출력활성함수라고 하며, 분류문제에서는 로지스틱, 회귀문제에서는 선형함수가 사용됨
  • ✅ 신경망학습에서 주의사항: 입력변수의 스케일링, 표준화가 결과에 많은 영향을 미치므로 표준화를 한 후 모형을 학습하기 바람.

🏷 퍼셉트론

퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘입니다. 퍼셉트론은 실제 뇌를 구성하는 신경 세포 뉴런의 동작과 유사한데, 신경 세포 뉴런의 그림을 먼저 보도록 하겠습니다. 뉴런은 가지돌기에서 신호를 받아들이고, 이 신호가 일정치 이상의 크기를 가지면 축삭돌기를 통해서 신호를 전달합니다.

  • x는 입력값을 의미하며, w는 가중치(weight), y는 출력값입니다. 그림 안의 원은 인공 뉴런에 해당됩니다. 실제 신경 세포 뉴런에서의 신호를 전달하는 축삭돌기의 역할을 퍼셉트론에서는 가중치가 대신합니다.
  • 각각의 입력값에는 각각의 가중치가 존재하는데, 이 때 가중치의 값이 크면 클수록 해당 입력 값이 중요하다는 것을 의미합니다.
  • 각 입력값이 가중치와 곱해져서 인공 뉴런에 보내지고, 각 입력값과 그에 해당되는 가중치의 곱의 전체 합이 임계치를 넘으면 종착지에 있는 인공 뉴런은 출력 신호로서 1을 출력하고, 그렇지 않을 경우에는 0을 출력합니다. 이러한 함수를 계단 함수(step function)이라고 합니다.


    - 위의 식에서 임계치를 좌변으로 넘기고 편향 b(bias)로 표현할 수도 있습니다.

이렇게 뉴런에서 출력값을 변경시키는 함수를 활성화 함수라고 합니다.

🏷 단층 퍼셉트론

퍼셉트론은 단층 퍼셉트론, 다층 퍼셉트론으로 나뉘는데 단층 퍼셉트론은 한 개의 입력층과 한개의 출력층, 총 두 단계로 이루어져있는 구조를 뜻합니다. 이 때 각 단계를 보통 층(layer)이라고 부릅니다.

이처럼 단층 퍼셉트론은 AND 게이트, NAND 게이트, OR 게이트를 구현할 수 있으나 지금부터 설명할 XOR 게이트는 구현할 수 없습니다.

🏷 다층 퍼셉트론(MultiLayer Perceptron, MLP)

XOR 게이트는 기존의 AND, NAND, OR 게이트를 조합하면 만들 수 있습니다. 퍼셉트론 관점에서 말하면 층을 더 쌓으면 만들 수 있습니다. 이처럼 층을 추가한 퍼셉트론을 다층 퍼셉트론이라고 말합니다.
다층 퍼셉트론은 입력층과 출력층 사이에 은닉층(hidden layer)이 존재하는 것을 뜻합니다.
또한 은닉층이 2개 이상인 신경망을 심층 신경망(DNN)이라고 합니다.

- 다층 퍼셉트론

- 심층 신경망

지금까지는 OR, AND, XOR 게이트 등. 퍼셉트론이 제대로 된 정답을 출력할 때까지 저자가 직접 가중치를 바꿔보면서 적절한 가중치를 수동으로 찾았습니다. 하지만 이제는 기계가 가중치를 스스로 찾아내도록 자동화시켜야하는데, 이것이 머신 러닝에서 말하는 훈련(training) 또는 학습(learning) 단계에 해당됩니다. 앞서 선형 회귀와 로지스틱 회귀에서 보았듯이 손실 함수(Loss function)와 옵티마이저(Optimizer)를 사용합니다. 그리고 만약 학습을 시키는 인공 신경망이 심층 신경망일 경우에는 이를 심층 신경망을 학습시킨다고 하여, 딥 러닝(Deep Learning)이라고 합니다.

profile
윤쓰네뽀끼

0개의 댓글