수업정리

 

  • 뉴런에서 역치라는 개념을 가지고 있다
  • 역치이상이어야 다음 뉴런으로 넘어갈 수 있다.
  • 사람의 뉴런을 구현하고자 선형모델로 만들었다
  • 퍼셉트론의 개념
    • 현재 딥러닝의 가장 작은 단위를 제안
    • 신경세포에 가중치를 모두 곱하고 합한 것을 y값을 도출해 냄
    • 하나의 y값이 반환되면 다시 활성화함수를 만나
    • 활성화 함수로써 시그모이드를 만나면 y가 100이던 1000이던 0과1로 만들어냄
    • 활성화함수로 기존에는 계단함수로 시작하였으나 현재는 잘 쓰지 않는다 -> 시그모이드를 사용
    • XOR문제가 발생 
      • 이런 간단한 것도 풀지 못함
      • 선 하나만으로는 해결이 안되었음
      • 여러층을 쌓음으로써 해결됨
      • 하나의 퍼셉트론으로는 해결되지 않았던 문제가 해결됨
  • Dense 말고도 연산가능한 신경망을 붙인다.

CNN 과 RNN 이용하여 층을 쌓아서 모델을 만들어볼 예정

  • 맨 처음과 맨 끝은 신경을 많이 써줘야한다.
  • 입력층
    • 데이터가 가장 먼저 만나는 층
    • 데이터하나의 크기 (컬럼 수)
  • 출력층
    • 예측값이 나오는 층
    • 예측값이 몇개가 나올지
    • 활성화 함수는 뭘 써줘야할 지
  • 은닉층
    • HIDDEN LAYER
    • 중간층
    • 층을 몇개를 쌓든지..

  • W는 서로 다른 가중치를 가지고 있다
  • 각각의 퍼셉트론 들이 각자 다른 학습을 한다.
    • 가중치가 전부 다르다
  • 퍼셉트론마다 만나서 나온 예측값이 다 다르다.
  • 그 예측값으로 다음 퍼셉트론을 만나 학습데이터(재료)로 사용된다.
  • 퍼셉트론은 이전 층의 퍼셉트론 예측값+절편 만큼 학습 재료로 쓰인다.
  • 회귀와 이진 분류는 하나의 예측값만 나온다.
  • 입력층은 이전퍼셉트론이 없어서 입력데이터 개수를 알려주는게 필요하다.
  • 다층 퍼셉트론
    • 비선형 데이터를 분리할 수 있음
    • 학습 시간이 오래걸린다.
    • 가중치 파라미터가 맣ㄴ아 과적합 되기 쉽다
    • 가중치 초기 값에 민감하여 지역 최적점에 빠지기 쉽다
      • 지역 최적점 : 전역 최적점이 있는데도 불구하고 지역 최적점에 머무르는 현상

 

  • 딥러닝은 내가 직접 모델을 설계한다
  • 직접 평가방법을 설정
  • 유방암 분류 데이터는 이진분류 데이터셋이다.
    • 활성화 함수로 시그모이드 사용

 

 


 

 

수업시작

 

 

다중분류

  • 텐서플로우의 학습용 데이터 사용 

  • 어떤식으로 내장 되어 있나?

아무런 정보가 안들어있는 데이터들로만 이루어진 데이터이다.

 

data -> train, test -> X_train, y_train, X_test, y_test

 

 

공식문서에서 확인가능

  • 문제데이터로는 28 x 28 데이터가 60000장이 있다.
  • 숫자들의 모음이라 볼 수 있다.
  • Numpy 배열로 저장되어있다.
  • 정답은 10가지로 구성되어있음
    • 0~9로 분류 -> 다중분류
  • 흑백은 2차원 컬러는 2차원이 3장이 붙은 3차원
  • 컬러이미지는 1차원이 더 붙는다.
  • 28뒤에 3이 붙는다 -> R,G,B 의 수치값 
    • 60000, 28, 28 , 3

 

X_train[5999] - 한장의 이미지 데이터 28 x 28 구조

 

0101 데이터를 이미지로 시각화

  • 흑백이미지인데 왜 색상이 나오나?
    • -> 맷플러립에서 사용하는 색상 컬러 체계가 있는데 가장 기본적으로 정해져 있는 게 보라에서 노랑이다
    • 원래 흑백은 흑에서 백으로 가지만 맷플러립 기본 체계는 0에가까운 색은 보라색 1에가까운색은 노란색이다.
  • 다른색상 체계로 변경해주고싶으면 cmap파라미터 사용

 

라벨 종류 확인

  • 편향된 학습은 좋지 않다.
  • 분류면 몇개씩 구성되어있는지 확인하는게 매우중요하다!

 

라벨 빈도수 확인

 

데이터 빈도수 시각화

  • 검정부분에 많은 값이 몰려있고, 하얀 색은 별로 없는 편
  • 배경색이 검정이기 때문에
  • 글씨를 쓰는 무게감 때문에 연한 하얀색이 나온다. 0과 255로만 존재하지 않는 이유

 

Flatten, to_categorical 

 

  • 0 ~ 9선택지는 10개이다 -> 예측을 해야하는 클래스가 10개
  • 어떤 확률로 0이라고 맞췄는지 3이라고 맞췄는지
  • 디테일한 학습을 통해서 일반화 된 모델을 만들 수 있다.
  • 답체크만하는게 아니라 어떤 확률로써 2라맞춘건지, 3이라 맞춘건지
  • 결론적으로 분류는 확률적으로 학습시키는게 중요하다
  • 전체 데이터에서 (10가지중) 4일 확률 5일 확률, 정답데이터를 확률 정보로 변경하여 각각의 데이터에 대해서 확률로 반환하게 만들기
  • 원핫인코딩이 확률 데이터표현이라 볼 수 있다.
  • 모델은 예측값으로 100% 0%로 학습된다

학습할 때도 예측해야할 값으로 확률 정보로 학습한다.

반환도 확률 값으로 나오게

 

 

to_categorical() 사용하여 원 핫 인코딩(확률)

다중분류 출력층의 units 수 - 정답 예측클래스의 수

softmax 활성화 함수 (출력층 활성화함수)

 

  • 마지막 출력 층의 활성화 함수로 softmax => 확률 값으로반환 
    • 출력층에 있는 10개의 퍼셉트론들마다 확률 값이 나오는데 다 더하면 총 합이 1이되도록 맞춰줌 -> 정규화 작업
    • [0.1, 0.4, 0.3, 0.2]  -> 1번모델
    • [0.1, 0.7, 0.1, 0.1]  -> 2번모델
      • 위 두개의 결과를 내는 각각의 모델중 2번 모델이 학습이 잘 된 케이스
      • 1번은 낮은 확률로 정답을 가려내는 모델이다.

softmax 모든 클래스별로 확률 정보를 뽑아준다.

 

 

Flatten 으로 펼쳐주기

  • 2차원을 1차원으로 펼쳐줌
  • 28 x 28이니 W1X1 ... W784X784 + b가 된다.

 

 

학습 모델과 평가지표

 

학습 결과 

 

시각화

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts