수업정리
- 뉴런에서 역치라는 개념을 가지고 있다
- 역치이상이어야 다음 뉴런으로 넘어갈 수 있다.
- 사람의 뉴런을 구현하고자 선형모델로 만들었다
- 퍼셉트론의 개념
- 현재 딥러닝의 가장 작은 단위를 제안
- 신경세포에 가중치를 모두 곱하고 합한 것을 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가 된다.
학습 모델과 평가지표
학습 결과
시각화
'수업 > 딥러닝' 카테고리의 다른 글
[딥러닝] 7일차 - 이미지 데이터 학습, 데이터 확장 (0) | 2023.05.17 |
---|---|
[딥러닝] 6일차 - cnn (0) | 2023.05.15 |
[딥러닝] 4일차 - (0) | 2023.05.10 |
[딥러닝] 2일차 - 신경망 모델, 퍼셉트론, 다층퍼셉트론, 유방암데이터븐류 (이진분류) (0) | 2023.05.03 |
[딥러닝] 1일차 (0) | 2023.05.02 |