머신러닝 & 딥러닝

[머신러닝 & 딥러닝] 적응형 선형 뉴런(ADAptive Linear NEuron, ADALINE)

beginner-in-coding 2025. 4. 14. 14:14

00. 적응형 선형 뉴런(ADAptive Linear NEuron, ADALINE)

  • 단일층 신경망의 종류
  • 버나드 위드로우와 테드 호프가 프랑크가 아달린을 발표
  • 아달린: 퍼셉트론의 향상된 버전

01. 아달린 (ADALINE)

  • 핵심 개념: 연속 함수로 비용 함수를 정의하고 최소화함
  • 아달린 규칙 vs 퍼셉트론의 차이점
    • 가중치를 업데이트할 때: 퍼셉트론은 단위 계단 함수를 사용, 아달린은 선형 활성화 함수를 사용
    • 즉, 아달린은 퍼셉트론에서 최종 입력 함수와 임계 함수 사이에 활성화 함수가 추가된 형태
    • 아달린에서의 선형 활성화 함수: 단순한 항등 함수
    • 아달린과 퍼셉트론의 오차 비교 방법
      • 아달린: 진짜 클래스 레이블과 선형 활성화 함수의 실수 출력값을 이용해 모델의 오차를 계산하고 가중치를 업데이트
      • 퍼셉트론: 진짜 클래스 레이블과 예측 클래스 레이블을 비교

아달린 (ADALINE)


02. 경사 하강법(gradient descent) - 비용 함수 최소화

  • 목적 함수(object function)
    • 지도 학습 알고리즘의 핵심 구성 요소
    • 학습 과정 동안 최적화를 위해 사용
    • 최소화하려는 비용 함수 == 목적 함수
  • 아달린의 비용 함수(J): 계산된 출력, 진짜 클래스 레이블 사이의 제곱 오차곱으로 가중치를 학습하기 위해 정의
    • 전역 최솟값에 도달할 때까지 경사의 반대 방향으로 반복하여 진행
    • 진행 크기의 결정 요소: 경사의 기울기, 학습률
    • 배치 경사 하강법(batch gradient descent)
      • 결과값: 정수 클래스 레이블이 아닌 실수
      • 각 샘플마다 가중치를 업데이트 하는 것이 아님 → 훈련 데이터 셋에 있는 모든 샘플을 기반으로 가중치 업데이트를 계산

경사 하강법(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 반복 → 선형 대수 개념을 사용한 벡터화된 연산으로 바꾸어서 학습 알고리즘의 계산 효율성이 향상