728x90
반응형
[youtube] Deep Learning Full Tutorial Course using TensorFlow and Keras - 이수안컴퓨터연구소 참고
🧡목차
딥러닝 구조 및 학습
1. 레이어
- dense
- activation
- flatten
- input
딥러닝 구조 및 학습
- 딥러닝 구조와 학습에 필요한 요소
- 모델(네트워크)를 구성하는 레이어(layer)
- 입력 데이터와 그에 대한 목적(결과)
- 학습시에 사용할 피드백을 정의하는 손실 함수(loss function)
- 학습 진행 방식을 결정하는 옵티마이저(optimizer)
1. 레이어(Layer)
- 신경망의 핵심 데이터 구조
- 하나 이상의 텐서를 입력받아 하나 이상의 텐서를 출력하는 데이터 처리 모듈
- 상태가 없는 레이어도 있지만, 대부분 가중치(weight)라는 레이어 상태를 가짐
- 가중치는 확률적 경사 하강법에 의해 학습되는 하나 이상의 텐서
- Keras에서 사용되는 주요 레이어
- Dense
- Activation
- Flatten
- Input
from tensorflow.keras.layers import Dense, Activation, Flatten, Input
1) Dense
- 완전연결계층(Fully-Connected Layer)
- 노드수(유닛수), 활성화 함수(activation) 등을 지정
- name을 통한 레이어간 구분 가능
- 가중치 초기화(kernel_initializer)
- 신경망의 성능에 큰 영향을 주는 요소
- 보통 가중치의 초기값으로 0에 가까운 무작위 값 사용
- 특정 구조의 신경망을 동일한 학습 데이터로 학습시키더라도, 가중치의 초기값에 따라 학습된 신경망의 성능 차이가 날 수 있음
- 오차역전파 알고리즘은 기본적으로 경사하강법을 사용하기 때문에 최적해가 아닌 지역해에 빠질 가능성이 있음
- Keras에서는 기본적으로 Glorot uniform 가중치(Xavier 분포 초기화), zeros bias로 초기화
- kernel_initializer 인자를 통해 다른 가중치 초기화 지정 가능
- Keras에서 제공하는 가중치 초기화 종류: https://keras.io/api/layers/initializers/
#Denselayer 코드(activation, 초기화, 이름지정)
Dense(10, activation="relu", kernel_initializer="he_normal", name="Dense Layer")
2) Activation
- Dense layer에서 미리 활성화 함수를 지정할 수도 있지만 필요에 따라 별도 레이어를 만들어줄 수 있음
- Keras에서 제공하는 활성화 함수(activation function) 종류: https://keras.io/ko/activations/
#Dense함수로 지정할 수도 있고 따로 Activation함수로 지정해줄 수도 있다.
dense = Dense(10, activation='relu', name='Dense Layer')
Activation(dense)
활성화함수 요약정리 - https://gggggeun.tistory.com/105?category=990621
3) Flatten
- 배치 크기(또는 데이터 크기)를 제외하고 데이터를 1차원으로 쭉 펼치는 작업
- 예시) (128, 3, 2, 2) -> (128, 12)
Flatten(input_shape=(128, 3, 2, 2))
4) Input
- 모델의 입력을 정의
- shape, dtype을 포함
- 하나의 모델은 여러 개의 입력을 가질 수 있음
- summary() 메소드를 통해서는 보이지 않음
Input(shape=(28,28), dtype=tf.float32)
Input(shape=(8,), dtype=tf.int32)
728x90
반응형
'딥러닝 (Deep Learning) > tensorflow, keras' 카테고리의 다른 글
챗봇 실습 - 위로해주는 챗봇 (0) | 2021.10.23 |
---|---|
[tensorflow, keras] 딥러닝 기본 코드(2-3,4) 모델 컴파일(손실함수, 최적화, 지표), 모델 학습 평가 예측 (0) | 2021.10.15 |
[tensorflow, keras] 딥러닝 기본 코드(2-2) 모델 가중치 확인 (0) | 2021.10.14 |
[tensorflow, keras] 딥러닝 기본 코드(2-1) 모델의 구성(Sequential, API함수, 서브클래싱) (0) | 2021.10.14 |
[tensorflow] 텐서 기본코드 (0) | 2021.10.14 |