본문 바로가기
Computer Science/AI

회귀분석: 전복의 고리 수 추정 신경망

by HaningYa 2020. 9. 16.
728x90

단층 퍼셉트론 신경망 구조

뉴럴 네트워크로 표현한 회귀분석. (Linear 하다.)

  • 가장 기본적인 신경망 구조
  • 일련의 퍼셉트론을 한 줄로 배치
  • 입력 벡터 하나로부터 출력 벡터 하나를 단번에 생성

Linear하다. 

입출력 벡터

  • 입력벡터: x = (x1,x2,x3,x4)
  • 출력벡터: y = (y1,y2,y3)

퍼셉트론 열

  • p1,p2,p3
  • 출력 벡터 크기만큼의 퍼셉트론 배치

가중치(weight, parameter)

  • 입력 벡터와 퍼셉트론 사이를 완전 연결
  • [입력벡터크기, 퍼셉트론 개수] 형태의 행렬

편향(bias , constant)

  • 퍼셉트론 별로 가산되는 스칼라 값
  • [퍼셉트론 개수] 형태의 벡터

텐서

  • 다차원 숫자 배열 정도로 이해해도 무방
  • 스칼라, 벡터 행렬: 각각 0차원, 1차원, 2차원 텐서

텐서 연산

  • 파이썬의 numpy 라이브러리 등이 효율적 지원
  • 반복문 사용보다 파이썬 인터프리터 텐서 연산이 훨씬 빠름
  • 병렬 수치 연산 자원용 GPU 사용시 속도 차이 더욱 커짐

미니배치:

학습데이터가 무지 많을때 cost function을 구해서 미분하는데 전체 데이터를 동시에 한번마다 하면 꼭 효과적인게 아니라 데이터를 4,5개 나눠서 각각 학습시키는 게 좋음. 전체 학습과 결과가 다름. 

  • 여러 데이터를 한꺼번에 처리
  • 반복 처리 대신 텐서 연산을 활용할 수 있어 처리 속도 향상
  • 학습에서 특정 데이터 영향을 덜 받는 효과

에포크: 학습 데이터 전체를 한 차례 처리

  • 미니배치 크기가 커질수록 각 에포크당 처리 횟수 감수

 

회귀 분석

  • 하나의 특정값을 숫자로 추정
  • 입력 정보로부터 미지의 값을 직접 추정

 

이진 판잔

  • 예/아니오 가운데 한 쪽을 선택
  • 입력 정보로부터 '예'의 확률 추정해 후처리

 

선택 분류

  • 몇 가지 후보 항목 중 하나를 선택
  • 입력 정보로부터 후보간 확률 분포 추정해 후처리

 

전복의 고리 수 추정 문제

  • 정확한 나이: 현미경으로 껍질 파편의 고리수 조사
    • 조사된 고리수 + 1.5
    • 정확하지만 많은 시간과 노력 필요
  • 8가지 특정값: 성별, 키, 지름, 높이, 무게(전체, 몸통, 내장, 껍질) 을 통해 회귀 분석 신경망 이용해 특정값들로부터 추정
    • 정확하진 않지만 비용과 시간 절망

손실함수

  • 항상 0 이상, 미분가능하고 추정이 정확해질 수록 작아지는 값.
    • 이 값을 줄이는 것을 학습 목표로 삼게 됨
    • 파라미터 상태에 따라 값이 달라져 함수라고 표현
  • 비용 함수라고도 부른다. (Loss function, Objective Function)
  • 회귀분석에서는 신경망 출력과 정답의 MSE가 이런 성질 보유

*MSE: 평균 제곱 오차

경사하강법

  • 딥러닝의 가장 기본적인 학습 알고리즘
  • 함수의 기울기 계산해 함숫값이 작아지는 방향으로 이동 반복
  • 미니배치 입력에 대해 순전파와 역전파를 번갈아 반복 수행

순전파: 입력 정보로부터 손실 함수 계산 과정

  • 신경망 구조를 따라가면서 현재의 파라미터값 이용해 계산

역전파

  • 순전파 계산 과정의 역순으로 진행
  • 손실 함숫값에 영향 미친 모든 성분에 대해 손실 기울기 계산
  • 파라미터 성분의 경우 계산된 손실 기울기 이용해 값을 변경
    • 이 변경이 바로 신경망 변화를 가져오는 학습의 핵심 과정

학습률

  • 학습속도를 조절하는 하이퍼 파라미터
  • 파라미터값 = 파라미터 값 - 학습률 * 손실 기울기

편미분

  • 경사하강법에서는 전미분 대신 편미분 사용
  • 편미분: 관심 변수 외의 변수를 모두 상수 취급하는 가난한 미분법
  • 편미분은 전미분에 비해 훨씬 쉽게 계산
  • 상수 취급되는 다른 변수도 같은 편미분 방식으로 처리해 종합

하이퍼파라미터

  • 모델 구조나 학습 과정에 영향을 미치는 각종 상숫값
    • 학습률, 학습 횟수, 미니배치 크기
  • 딥러닝 알고리즘 실행 동안은 값이 변하지 않는 상수
  • 개발자가 미리 정해주어야 하는 값

하이퍼 파라미터의 중요성

  • 마음에 드는 학습 결과를 얻기까지
    • 다양한 값으로 바꾸어가며 실험할 필요

원-핫 벡터 표현

  • 전복 성별의 경우 유충, 수컷, 암컷을 각각 (1,0,0) (0,1,0) (0,0,1)로 표현
  • 벡터 크기 늘어나지만 불필요한 선형성 없어 학습에 유리

 

 

 

 

728x90

'Computer Science > AI' 카테고리의 다른 글

천체의 펄서 예측 신경망  (0) 2020.09.28
회귀 분석: 전복의 고리 수 추정 신경  (0) 2020.09.23
XOR을 위한 다층 퍼셉트론  (0) 2020.09.11
인공지능 개론  (2) 2020.09.02

댓글