1. 퍼셉트론 (Perceptron)
- 1957년 미국의 심리학자 프랑크 로젠블라트(Frank Rosenblatt)에 의해 고안된 인공신경망 최초의 알고리즘
- 다수의 입력과 하나의 출력을 가짐
- 뉴런이라고도 부르며 뉴런은 입력, 가중치, 활성화함수, 출력으로 구성
2. 퍼셉트론의 겨울(한계)
- 퍼셉트론은 AND, OR, NANA 같은 선형문제는 해결(분류) 가능하지만 XOR 같은 비선형 문제는 해결 불가능
- XOR 문제를 분류하기 위해서는 직선이 아닌 곡선으로 분류 가능함
- 다층 퍼셉트론 탄생의 기초가 됨
3. 다층퍼셉트론과 인공지능의 부흥
- 단층 퍼셉트론에서 층을 증가시킴으로써, XOR 문제 해결 가능
4. 인공신경망 (ANN)
- 단층 퍼셉트론을 기반으로 생물학적 신경망 영감을 받은 통계 학습 알고리즘
- 심층신경망(DNN)의 기초
5. 심층신경망 (DNN)
- 인공신경망에서 은닉 계층을 증가 시킨 신경망
- 일반적으로 은닉층이 3개 이상일 경우, 심층신경망이라고 표현
- 딥러닝에 사용됨
6. 선형 회귀 (Linear Regression)
- 독립 변수 'x'를 사용하여 종속 변수 'y'의 움직임 예측 및 설명
- 1차원 방정식을 찾는 과정
- 머신러닝에서 선형 회귀 분석을 이용하여 입력값에 대한 출력값을 예측함
e.g.,
1. 시험 공부 시간을 늘릴 수록, 성적도 향상
2. 하루에 걷는 횟수를 늘릴 수록, 몸무게는 감소 - 활성화 함수는 주로 계단 함수 사용
7. 활성화 함수 (Activation Function)
- XOR 문제를 다층 퍼셉트론으로 해결했지만, 은닉층만 늘린다고 선형분류기를 비선형분류기로
바꿀 수는 없음
-> f(ax+by) = af(x) + bf(y) 성질때문에 결국 깊은 층은 하나의 층으로 구현할 수 있음 - 이에 대한 해결책인 활성화 함수는 입력값에 대한 출력값이 선형이 아니므로
선형분류기를 비선형분류기로 만들 수 있음
e.g., binary step, Sigmoid, ReLU, TanH 등
8. 손실 함수 (Loss Function)
- 예측값과 정답 사이의 오차를 정의하는 함수
- 머신러닝의 목적은 오차의 합을 최소화하여 최적의 결과 값을 도출하는 것 (잘 학습된 모델)
- 비용 함수 (cost function) 또는 목적 함수 (object function) 라고도 부름
9. 평균 제곱 오차 (Mean Squared Error)
- 손실 함수 중 하나
- 오차(예측값과 목표 값의 차이)를 제곱하여 더한 다음 그 수로 나눈 값
- 정답에 가까울수록 MSE 값이 작고, 오답에 가까울수록 큰 값을 가짐
- 오차가 크면 클수록 MSE는 더 큰 값을 가지므로 학습에 유리함
10. 경사 하강법 (Gradient Decent Algorithm)
- 어떤 손실 함수가 정의되었을 때, 손실 함수의 값이 최소가 되는 지점을 찾아가는 방법
- MSE를 가중치(weight)에 대한 미분 값이 감소하는 방향으로 가중치를 업데이트 하여
손실 함수의 최소값을 찾음
11. 로지스틱 회귀 (Logistic Regression)
- 실생활에서 모든 원인과 결과는 직선 형태로 표현할 수 없기 때문에, 선형회귀에서 구하는 직선 대신
S자 곡선을 이용하여 분류의 정확도를 향상한 회귀 방법 - 선형 회귀를 사용하여 데이터를 0과 1 사이의 값으로 분류하는 알고리즘
- 선형회귀처럼 독립변수에 따른 종속변수를 추정하는데 사용되나, 종속변수가 이진인 형태
- 주로 분류에 이용
- 활성화 함수는 주로 Sigmoid, ReLU, Softmax 함수 사용
12. 오차 역전파 (Error Backpropagation)
- 전체 데이터에 대해 학습(Epoch) 할 때 은닉층이 많을수록 각 노드를 가중치에 대해 미분으로 계산하여 가중치를 업데이트 하는것은 무리가 있기 때문에, 출력 노드만 가중치에 대해 미분하고 그 값을 이전 노드(역방향)에 전달하여 재사용하는 방법
- 순전파 이후에 출력값이 오류일 경우 출력층에서 입력층 방향으로(역방향) 가중치가 더 이상 업데이트
되지 않을때까지 반복 - Chain Rule을 통해 Local Gradient, Global Gradient를 이용하여 가중치를 업데이트
DNN(Deep Neural Network) 학습 과정을 정리하면 다음과 같습니다.
1. 학습에 사용할 데이터를 로드한다. (Matrix 형태로 변환)
2. 입력층에서 가중치와 편향 값을 활성화 함수와 경사 하강법을 통해 출력값을 은닉층으로 전달한다.
3. 출력층까지 연산을 반복한다.
4. 출력값을 바탕으로 오차 역전파를 수행한다.
5. 최적의 손실 함수 값을 구할때까지 반복한다.
'AI > Deep Learning' 카테고리의 다른 글
[Deep Learning] RNN (Recurrent Neural Networks) (0) | 2023.06.08 |
---|---|
[Deep Learning] CNN 파라미터 수 계산 (0) | 2023.06.07 |
[Deep Learning] CNN (Convolutional Neural Networks) (0) | 2023.06.07 |
[Deep Learning] 활성화 함수 (Activation Function) (0) | 2023.06.02 |
[Deep Learning] 퍼셉트론(Perceptron)과 뉴럴 네트워크(Neural Networks) (0) | 2023.06.02 |