00. 적응형 선형 뉴런(ADAptive Linear NEuron, ADALINE)
- 단일층 신경망의 종류
- 버나드 위드로우와 테드 호프가 프랑크가 아달린을 발표
- 아달린: 퍼셉트론의 향상된 버전
01. 아달린 (ADALINE)
- 핵심 개념: 연속 함수로 비용 함수를 정의하고 최소화함
- 아달린 규칙 vs 퍼셉트론의 차이점
- 가중치를 업데이트할 때: 퍼셉트론은 단위 계단 함수를 사용, 아달린은 선형 활성화 함수를 사용
- 즉, 아달린은 퍼셉트론에서 최종 입력 함수와 임계 함수 사이에 활성화 함수가 추가된 형태
- 아달린에서의 선형 활성화 함수: 단순한 항등 함수
- 아달린과 퍼셉트론의 오차 비교 방법
- 아달린: 진짜 클래스 레이블과 선형 활성화 함수의 실수 출력값을 이용해 모델의 오차를 계산하고 가중치를 업데이트
- 퍼셉트론: 진짜 클래스 레이블과 예측 클래스 레이블을 비교
02. 경사 하강법(gradient descent) - 비용 함수 최소화
- 목적 함수(object function)
- 지도 학습 알고리즘의 핵심 구성 요소
- 학습 과정 동안 최적화를 위해 사용
- 최소화하려는 비용 함수 == 목적 함수
- 아달린의 비용 함수(J): 계산된 출력, 진짜 클래스 레이블 사이의 제곱 오차곱으로 가중치를 학습하기 위해 정의
- 전역 최솟값에 도달할 때까지 경사의 반대 방향으로 반복하여 진행
- 진행 크기의 결정 요소: 경사의 기울기, 학습률
- 배치 경사 하강법(batch gradient descent)
- 결과값: 정수 클래스 레이블이 아닌 실수
- 각 샘플마다 가중치를 업데이트 하는 것이 아님 → 훈련 데이터 셋에 있는 모든 샘플을 기반으로 가중치 업데이트를 계산
03. 하이퍼파라미터
- 퍼셉트론과 아달린의 하이퍼파라미터(튜닝 파라미터): 에포크 횟수와 학습률
- 분류 모델이 최적의 성능을 내기 위해 다양한 하이퍼파라미터 값을 자동으로 찾는 방법이 존재
- 예시 문제
- 학습률이 너무 큰 경우 → 비용 함수를 최소화하지 못하고 에포크마다 점점 커짐(전역 최솟값을 지나침)
- 학습률이 너무 작은 경우 → 비용이 감소하지만 전역 최솟값에 수렴하기 위해 많은 에포크 횟수가 필요
04. 특성 스케일을 조정하여 경사 하강법 결과 향상하기
- 특성 스케일의 조정을 통해 성능을 향상시킬 수 있음
- 표준화(standardization) 스케일 방법
- 데이터에 평균이 0이고 단위 분산을 가지는 표준 정규 분포의 성질로 바꿔서 경사 하강법 학습의 수렴 속도를 빠르게 함
- 각 특성의 평균 == 0
- 특성의 표준 편차 == 1(단위 분산)
- 표준화 기법을 데이터셋의 각 특성에 적용함
- 전역 최솟값을 찾을 때 더 적은 단계를 통해 구할 수 있게됨
- 파이썬의 넘파이 내장 함수 mean, std 이용
import numpy as np # python 내장 넘파이 사용
X_std = np.copy(X) # 원본 데이터는 건들이지 않음, 복사해서 사용
X_std[:, 0] = (X[:, 0] - [X:, 0].mean()) / X[:, 0].std()
X_std[:, 0] = (X[:, 1] - [X:, 1].mean()) / X[:, 1].std()
05. 확률적 경사 하강법(stochastic gradient descent) - 대규모 머신 러닝
- == 반복, 온라인 경사 하강법
- 배치 경사 하강법의 다른 대안 방법
- 배치 경사 하강법은 큰 데이터셋에서 실행할 시 계산 비용이 많이 드는 문제 발생
- 가중치 업데이트 방법
- 모든 샘플에 대하여 누적된 오차의 합을 기반으로 가중치를 업데이트
- 두 번째에서는 각 훈련 샘플에 대해 조금씩 가중치를 업데이트
- 가중치가 더 자주 업데이트 되기 때문에 수렴 속도가 빠름
- 그레이디언트가 하나의 훈련 샘플을 기반으로 계산되므로 오차의 궤적은 배치 경사 하강법보다 어지러움
- 중요
- 훈련 샘플 순서를 무작위하게 주입
- 순환되지 않도록 에포크마다 훈련 데이터셋을 섞기
- 장점
- 비선형 비용 함수를 다룰 때 얕은 지역 최솟값을 더 쉽게 탈출할 수 있음
- 온라인 학습(online learning)으로 사용 가능
- 모델에서 새로운 훈련 데이터가 도착하는 대로 훈련
- 많은 양의 훈련 데이터가 있을 경우 유용
- 저장 공간에 제약이 존재하는 경우, 모델을 업데이트 후 훈련 데이터를 버릴 수 있음
06. 미니 배치 경사 하강법(mini-batch learning)
- 배치 경사 하강법과 확률적 경사 하강법 사이
- 훈련 데이터의 작은 일부분으로 배치 경사 하강법을 적용
- 배치 경사 하강법에 비해 더 많은 가중치 업데이트로 인해 빠른 수렴이 가능
- 확률적 경사 하강법에서 훈련 샘플을 조회하는 for 반복 → 선형 대수 개념을 사용한 벡터화된 연산으로 바꾸어서 학습 알고리즘의 계산 효율성이 향상
'머신러닝 & 딥러닝' 카테고리의 다른 글
[머신러닝 & 딥러닝] K-means 알고리즘 (1) | 2025.04.17 |
---|---|
[머신러닝 & 딥러닝] K-최근접 이웃(K-Nearest Neighbor, KNN) (2) | 2025.04.14 |
[머신러닝 & 딥러닝] 퍼셉트론(perceptron) - 이론 (2) | 2025.04.11 |
[머신러닝 & 딥러닝] 전체적인 작업 흐름 (0) | 2025.02.19 |
[머신러닝 & 딥러닝] 기본 용어와 표기법 (0) | 2025.02.18 |