ALL NIGHT STUDY

퍼셉트론과 인공신경망

with_AI 2021. 9. 23. 19:13

Keywords

  • 퍼셉트론
  • 신경망
  • 학습
  • 활성 함수

신경망

  • 1950년대 고양이 신경세포의 실험을 통해 얻어진 신경망 아이디어는 오늘날 다층신경망(MLP, multilayer perceptron)의 발전으로 매우 강력한 머신러닝 기술 중 한 가지
  • 이제는 머신러닝에서 독립하여 딥러닝이라는 학문으로 발전하여 단순 계산만 잘 하던 컴퓨터를 사물인식, 분할기술, 자연어 처리 등은 컴퓨터가 잘 못하는 영역까지 사람보다 뛰어난 성과를 보이며 발전

신경망은

  • 딥러닝의 발전은 핵심 알고리즘의 발전
  • Framework의 발전(Tensorflow, PyTorch 등)
  • CUDA (Gpu library, 속도증가)
  • ImageNet과 같은 벤치마크 Dataset 등의 발전

퍼셉트론

  • 사람의 노가 100억개의 뉴런으로 구성된 것을 활용하여 퍼셉트론의 개념을 따라하면 인공적으로 '생각' 하는것을 구현 가능
  • 신경망을 이루는 가장 기본 단위
  • 신경망의 기원이 되는 알고리즘
  • 다수의 신호를 입력으로 받아드려 하나의 신호로 출력
  • 0 또는 1의 값을 갖고
  • 가중치는 저항에 해당된다. 저항이 낮은 곳은 신호가 많이 흐르고, 높은 곳은 신호가 흐르지 못한다, 하지만 여기서 가중치는 저항과 반대로 클수록 높은 신호(1)를 출력하고, 작을수록 작은 신호(0)를 출력한다
  • 퍼셉트론의 한계는 XOR 문제를 풀지 못했다는 것이다.

 

신경망 기본구조

  • 퍼셉트론 알고리즘이 발전한 것
  • ANN (Artificial Neural Networks) 인공싱경망이라고 불리는 학습 모델
  • 뇌의 실제 신경게의 특징을 모사하여 만들어진 계산 모델임
  • 뉴럴넷 이라고 가장 많이 불림

 

신경세포(Neuron)

  • 뉴런, 수상돌기(Dendrites)에서 입력신호(다른 뉴런과의 시냅스)를 받아들임
  • 신경세포 내에서 정보를 통합함
  • 임계값을 넘어서는 전류가 생기면 Axon Hillock이 축삭돌기(Axon)로 최종 출력 신호(또 다른 뉴런으로 전파)를 전송

 

 

퍼셉트론

  • 아래 그림에서 '원'으로 표현된 것을 뉴런 or 노드(node)라고 함.
  • 입력신호(x0, x1, ...)가 뉴런에 입력되면 각각 고유한 가중치(화살표=weights, w0, w1, ...)가 곱해지고 다음 노드에서는 입력된 모든 신호를 더해줌.
  • 이는 시냅스(synapses)의 연결강도(시냅스의 두께, 개수)와 같은 역할을 함
  • 각 뉴런에서의 연산값이 정해진 임계값(TLU; Threshold Logic Unit)을 넘을 경우에만 다음 노드들이 있는 층(layer)으로 신호를 전달

 

활성 함수

  • 입력된 데이터의 가중 합을 출력 신호로 변환하는 함수이다. 인공 신경망에서 이전 레이어에 대한 가중 합의 크기에 따라 활성 여부가 결정된다.
  • 신경망의 목적에 따라, 혹은 레이어의 역할에 따라 선택적으로 적용한다.
  • 실제 뉴런세포에서 신호를 전달(activate or fire)할지 안 할지를 결정하는 기능을 말하는데 인공신경망에서 활성화 함수는 다음 층으로 신호를 얼마만큼 전달할지를 결정
  • 특징으로는 주로 비선형 함수로 되어 있다는 것
    • 뉴럴네트워크에서 층을 쌓는 혜택을 얻고 싶다면 활성화함수로는 반드시 비선형 함수를 사용
    • 선형 함수로 쌓게 되면 은닉층이 굳이 필요 없음 y = ax 에서 a = c^3 이라고 하면 끝

 

활성 함수 종류

  • 시그모이드 함수
  • ReLU 함수
  • 계단 함수

 

 

신경망 층 구성

  • 입력층
  • 은닉층
  • 출력층

 

 

입력층

  • 데이터 셋으로 입력을 받는다
  • 입력 변수의 수와 입력 노드의 수는 같다
  • 계산 수행 X,  전달만 하는 특징
  • 신경망 층수 개수에 포함 X

 

은닉층

  • 입력층과 출력층 사이의 층
  • 계산의 결과를 볼 수 없다
  • 두 개 이상의 은닉층을 가졌을 때 딥러닝이라고 말한다

 

출력층

  • 활성 함수가 존재
  • 풀고자 하는 문제에 따라 다른 활성 함수 사용
  • 회귀 문제에서 목표 변수가 실수값인 경우 활성화 함수 필요 X
  • 출력 노드 수는 출력 변수의 갯수와 같다
  • 이진 분류인 경우 시그모이드 함수를 활용
  • 다중클래스 분류 인 경우 소프트맥스 함수를 활용

 

퍼셉트론의 수식

 

 

'ALL NIGHT STUDY' 카테고리의 다른 글

원격제어 - SSH란무엇인가?  (0) 2022.01.13
벡터와 차원축소  (0) 2021.09.16
통계적 지식  (0) 2021.09.16
벡터와 매트릭스  (0) 2021.09.16
조건부 확률  (0) 2021.09.16