✳️ 딥러닝과 머신러닝
⭐ 공통점
데이터로부터 가중치를 학습하여 패턴을 인식하고 결정을 내리는 알고리즘 개발과 관련된 인공지능(AI)의 하위 분야
⭐ 차이점
- 머신러닝 : 데이터 안의 통계적 관계를 찾아내며 예측이나 부류를 하는 방법
- 딥러닝 : 머신러닝의 한 분야로 신경세포 구조를 모방한 인공 신경망을 사용함
✳️ 딥러닝 이론
⭐ 인공 신경망(Artificial Neural Networks)
: 인간의 신경세포를 모방하여 만든 망(Networks)
✨ 신경세포 : 이전 신경세포로 들어오는 자극을 이후 신경세포로 전기신호로 전달하는 기능을 하는 세포
⭐ 퍼셉트론(Perceptron)
: 인공 신경망의 가장 작은 단위
🥸 키와 몸무게 데이터를 가지고 퍼셉트론을 그려본다면?
- 몸무게와 키 데이터
- Y : 키
- X : 몸무게
- $w_0$ : 100 로 임의로 설정
- $w_1$ : 1 로 임의로 설정
- b(편향, bias) : 실제 Y값 - 예측 Y
예시로 몸무게가 90이면, 가중치 100을 더하면 190으로 키를 예측할 수 있다.
이제 실제 키에서 예측된 키를 빼면 편향 -2를 구할 수 있다.
⭐ 경사 하강법 (Gradient Descent)
모델의 손실 함수를 최소화하기 위해 모델의 가중치를 반복적으로 조저아는 최적화 알고리즘
🤔 손실 함수 (Loss Function)?
예측한 값과 실제 정답의 차이를 비교하기 위한 함수
모델이 실제값에 대해서 얼마나 잘 예측했냐를 판가름하는 좋은 지표로 이용 됨
따라서 좋은 모델로 평가 받기 위해 최소화하려는 값이라고 볼 수 있음
예시) 앞서 배웠던 회귀 문제에서 최소화하려고 했던 값은 MSE(Mean Squared Error) 였다.
가중치를 이리저리 움직이면서 최소의 MSE를 도출해냈다.
경사 하강법에 대해 더 쉽게 이야기 해보면,
만일 한밤중 산속에서 길을 헤메이고 있는데 내가 가야하는 목적지가 어디있는지 모를 때는 어떻게 해야할까?
주변의 지형 등 형태 파악을 통해 이를 근거로 목적지까지 가야 하는 판단이 필요하다.
목적지가 산 밑이라면 현재 위치에서 계속해서 가장 낮은 지점을 찾아 이동하다 보면 산 밑으로 내려갈 수 있게 된다.
그래서 산 밑으로 내려가는 것을 경사 하강법(Gradient descent)이라고 생각해볼 수 있다.
▼ 경사 하강법에 대해 참고할 만한 추가적 내용
https://hi-guten-tag.tistory.com/205
⭐ 활성화 함수 (Activation Function)
전달함수에서 전달받은 값을 출력할 때 일정 기준에 따라 출력값을 변화시키는 비선형함수
타이타닉 문제에서 사망, 생존과 같은 비선형적 분류를 만들기 위해 활성화 함수를 사용했었다. 그리고 로지스틱 회귀때 배웠던 로지스틱함수도 활성화 함수의 한 예시다.
- 활성화 함수를 적용한 분류 도식화
- 활성화 함수 종류
- 시그모이드 함수
- 선형 함수의 결과를 0~1사이에서 비선형 형태로 변형해줌
- 주로 로지스틱 회귀와 같은 분류문제를 확률적으로 표현하는 데 사용
- 딥러닝 모델의 깊이가 깊어지면 기울기 소멸 문제가 발생 - 하이퍼볼릭 탄젠트 함수
- 선형 함수의 결과를 -1~1사이에서 비선형 형태로 변형해줌
- 시그모이드에서 결괏값의 평균이 0이 아닌 양수로 편향되는 문제 해결
- 기울기 소멸문제는 여전 - 렐루 함수
- 입력(x)이 음수라면 0 출력, 양수라면 x 출력
- 경사하강법에 영향을 주지 않아 학습 속도가 빠름 (하이퍼의 6배)
- 기울기 소멸 문제 x
- 일반적으로 은닉층에서 사용 - 리키 렐루 함수
- 입력값이 음수면 0에 근접한 수 반환, 양수면 x출력
- 입력값이 수렴하는 구간이 제거되어 렐루의 문제점 해결 - 소프트맥스 함수
- 입력값을 0~1 사이에 출력되도록 정규화하여 출력값들의 총합이 항상 1이 되도록 함
- 딥러닝에서 출력 노드의 활성화함수로 많이 사용
▼ 참고 내용
⭐ 히든 레이어 (Hidden Layer)
데이터를 비선형적으로 변환함과 동시에 데이터의 고차원적 특성(ex 이미지, 자연어)을 학습하기 위해 중간에 입력과 결과 외의 추가하게 되는 숨은 층(Hidden Layer)의 개념이 등장
- Input Layer : 주어진 데이터가 벡터(Vector)의 형태로 입력됨
- Hidden Layer : Input Layer와 Output Layer를 매개하는 레이어로 이를 통해 비선형 문제를 해결할 수 있게 됨
- Output Layer : 최종적으로 도착하게 되는 Layer
- Activation function(활성화 함수) : 인공신경망의 비선형성을 추가하며 기울기 소실 문제 해결함
히든 레이어를 추가할 수록 더 좋은 모델이 나올 줄 알았으나, 실제로는 기울기 소실이라는 문제가 발생하게 된다.
그 이유는 인공 신경망의 학습 과정에 있다.
🤖 인공 신경망의 학습
- 입력 데이터가 신경망의 각 층을 통과하면서 최종 출력까지 생성되는 과정을 순전파(Propagation)
- 신경망의 오류를 역방향으로 전파하여 각 층의 가중치를 조절하는 과정을 역전파(Backpropagation)
🤖 기울기 소실 문제 등장
- 문제 : 역전파 과정에서 하위 레이어로 갈수록 오차의 기울기가 점점 작아져 가중치가 거의 업데이트 되지 않는 현상
- 해결 : 특정 활성화 함수(ex Relu)를 통해 완화 하게 됨
⭐ epoch
우리가 복습을 하듯이 데이터에 대해 복습을 하는 것,
전체 데이터가 신경망을 통과하는 한 번의 사이클
- 1000 epoch : 데이터 전체를 1000번 학습
- batch : 전체 훈련 데이터 셋을 일정한 크기의 소 그룹으로 나눈 것
- iteration : 전체 훈련 데이터 셋을 여러 개(=batch)로 나누었을 때 배치가 학습되는 횟수
- ex) 1000개의 데이터 batch size 100개라면, 1 epoch에는 iteration은 10번 일어나며 가중치 업데이트도 10번 진행
✳️ 딥러닝 활용 예시
💟 자연어 처리
- 자연어처리(Natural Language Processing) 개념
- 인간의 언어를 데이터 화 하는 것
- Ex) 단어의 빈도 수 기반 데이터 화(Bag of Words)
💟 최신 자연어 처리 모델 LLM
- LLM의 종류
- GPT-4(OpenAI), PaLM2(Google), LlaMA(Meta)
💟 이미지
- 이미지도 RGB 256개의 데이터로 이루어진 데이터의 집합
- 3차원 데이터를 모델에 학습 시킴
💟 최신 이미지 생성 딥러닝
최근의 이미지 모델의 특징은 단순히 이미지를 입력 받는 것을 넘어서 텍스트, 이미지, 음성 등 다양한 유형의 데이터를 함께 사용하는 Mutimodal의 시대가 도래했다.
특히 Stable Diffusion은 커뮤니티가 발달해 쉽게 설치할 수 있어 접근성도 매우 뛰어나다.
'📒 Today I Learn > 🤖 Machine Learning' 카테고리의 다른 글
[딥러닝] 간단한 실습 (0) | 2024.08.16 |
---|---|
[머신러닝 심화] 비지도 학습 실습 (0) | 2024.08.14 |
[머신러닝 심화] 비지도 학습 이론 (0) | 2024.08.14 |
[머신러닝 심화] 분류와 회귀 모델링 심화 실습 (0) | 2024.08.13 |
[머신러닝 심화] 분류와 회귀 모델링 심화 이론 (0) | 2024.08.13 |