인공신경망(Artificial Neural Network)
인공신경망: 소프트웨어로 인간 뇌의 뉴런 구조를 본따 만든 구조의 알고리즘을 말하며 퍼셉트론(Perceptron)을 기초로 함
따라서 퍼셉트론을 이해하기 전, 뉴런의 구조를 알아보는 과정이 필요함
뉴런의 구조
수상돌기(dendrite): 이웃 뉴런에서 전기 신호를 받는다. → 입력 신호를 받는 역할
시냅스(synapse): 다른 뉴런과 수상돌기(dendrite)의 연결 부위에 있음, 전기신호의 세기를 재조정 → 입력 신호에 가중치(w)를 곱하는 과정
세포체(soma, cell body): 수상돌기(dendrite)로부터 받은 여러 전기신호들을 모두 합침
축삭(axon): 세포체(soma)의 전위가 일정 이상이 되면 이웃 뉴런으로 전기 신호를 보냄
퍼셉트론
퍼셉트론: 인공 신경망의 구성 요소로서 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 알고리즘
- 아래 그림을 보면 알 수 있듯이, 퍼셉트론은 실제 인간의 뇌를 구성하는 신경 세포인 뉴런을 모티브로 만들어짐
용어정리
노드(node): 가중치가 적용되어 활성화 되거나 비활성화 되는 각각의 퍼셉트론(Perceptron) 지점
신경망 층(layer): 신경망은 여러 층으로 구성됨 → 입력층(input layers), 은닉층(hidden layers), 출력층(output layers)
입력층(input layer): 데이터가 입력되는 레이어
출력층(output layer): 결과 데이터가 출력되는 레이어
은닉층(hidden layer): 입력층과 출력층 사이에 숨겨진 레이어
활성화 함수(activation function): 입력 신호의 총합을 출력 신호로 변환하는 함수
퍼셉트론 동작 과정
1) 다수의 신호를 입력 받음 → 아래 그림에선 x, y, z를 입력 받음
2) 입력 받은 신호에 가중치 w(weight)를 곱함 → 뉴런의 시냅스(synapse)가 전기신호의 세기를 재조정하는 과정
3) 1)과 2)를 통해 곱해진 값을 모두 더함 → 이 값을 '가중합'이라고 함
4) 가중합이 임계값(θ)보다 클 경우 1을 출력하고, 그렇지 않다면 0을 출력 → 이렇게 0 또는 1을 출력하도록 해주는 함수를 활성화 함수(activation function)라고 함
아래 그림에서 각각의 원을 뉴런 또는 노드(related in tree data structure: https://psleon.tistory.com/15)라고 함
단층 퍼셉트론(SLP) vs 다층 퍼셉트론(MLP)
1_1. 단층 퍼셉트론(Single Layer Perceptron:SLP)
입력층(input layer)과 출력층(output layer)으로만 구성된 경우
1_2. 단층 퍼셉트론으로 AND, OR, NAND gate 구현
1_3. 단층 퍼셉트론의 한계점
단층 퍼셉트론은 입력값에 따른 출력값을 구분짓는 직선을 1개밖에 그릴 수 없기 때문에 XOR 게이트는 구현 불가
위의 한계점을 극복하기 위해 등장한 것이 '다층 퍼셉트론'
→ XOR 게이트는 AND, NAND, OR 게이트의 조합으로 만들 수 있기 때문에 은닉층을 추가하여 만들 수 있음!
따라서, 층을 여러겹으로 쌓아가면서 선형 분류만으로 해결이 불가능 했던 문제를 비선형적으로 해결 가능
각 층에서 발생하는 오차는 역전파 알고리즘을 통해 수정해나감
2. 다층 퍼셉트론(Multiple layer perceptron)
입력층(input layer)과 출력층(ouput layer) 사이에 1개 이상의 은닉층(hidden layer)이 추가된 경우
→ 은닉층이 2개 이상일 경우, 심층 신경망(Deep Neural Network, DNN)이라고 함
'AI & BigData' 카테고리의 다른 글
[AI] Activation function - Step function | 활성화 함수 - 계단 함수 (0) | 2023.05.01 |
---|---|
[AI] Activation function - Sigmoid function | 활성화 함수 - 시그모이드 함수 (0) | 2023.04.29 |
[BigData] 빅데이터의 5가지 특성 - 5V (0) | 2023.04.28 |
[Data Visualization] The basis of Matplotlib with Python (0) | 2023.04.28 |
[AI] 1. Introduction to deep learning (0) | 2023.04.28 |