[토크ON세미나] 딥러닝 입문에서 활용까지 케라스(Keras) 3강 & 4강
3강 - MLP(multi layer perceptron)
레이어
레이어의 주요 인자는 아래와 같다.
Dense(8, input_dim=4, init="uniform", activation='relu'))
8 : 출력 뉴런 수 설정
input_dim : 입력 뉴런 수 (즉, 8*4의 훈련을 행함.)
init : 가중치 초기화 방법(uniform :균일분포, normal:가우시안 분포)
activation : 활성화 함수(relu, sigmoid, softmax)
4강 - Convolution
레이어
Conv2D(32, (5,5), padding='valid', input_shape=(28,28,1), activation='relu')
Conv2D(32, (5,5), padding='valid', input_shape=(28,28,1), activation='relu')
32 : 컨볼루션 필터 수
(5,5) : 컨볼루션 커널 (행, 열)
padding : 경계 처리 방법(valid:유효한 영역-> 입력이 출력보다 작음, same:입력과 출력이 같음)
pooling
MaxPooling2D(pool_size=(2,2))
2*2사이즈의 pool에서 최대 값만 모아 놓는다. Convolution과는 다르게 matrics 연산을 하지 않고 뽑아낼 수 있다.
위와 같이 input에 대해서 2x2 영역에서의 최대값만을 선택해낸다. 이를 하는 이유는
1. 미묘한 변화에 대해서 무시할 수 있다.(픽셀 값의 위치가 조금씩 변하더라도 max값은 같기 때문.)
2. pooling을 통해 feature를 줄일 수 있기 때문이다. 결과적으로 pooling과 padding을 이용하여 overfitting을 줄인다.
(feature = input elements이다. input_size = 28x28이라면 feature=764이다)
Flatten
입력의 경우 3차원 이상이 대다수이므로 그것을 평탄화 시켜준다.(1차원으로)
ImageDataGenerator
이 함수는 이미지를 가져온다.
train_datagen = ImageDataGenerator(rescale=1./255) ##정규화
train_generator = train_datagen.flow_from directory(
'경로',
target_size=(24,24), ##타겟을 resize
batch_size=3,
class_mode='categorical')
ImageDataGenerator를 쓴다면 학습 시에 fit_generator를 사용해야한다. fit의 경우 메모리에서 x,y를 로딩해서 넘기기 때문에 까다롭지만, fit_generator의 경우 generator 자체를 넘긴다.
model.fit_generator(
train_generator,
steps_per_epoch=3,
epochs=50,
validation_data=test_generator,
validation_steps=5)
데이터 부풀리기
케라스의 경우 데이터 부풀리기를 지원한다. ImageDataGenerator에서 rotation, shift, flip등을 사용해서 이미지를 변형시킨 뒤 학습할 수 있다.(이미지의 경우 부풀리기가 기본이다.)
data_aug_gen = ImageDataGenerator(rescale=1./255,
rotation_range=15,
width_shift_range=0.1,
height_shift_range=0.1,
shear_range=0.5, ##기울어짐
zoom_range=[0.8, 2.0], ##0.8~2.0배 확대
horizontal_flip=True, ##수평 뒤집기
vertical_flip=True, ##수직 뒤집기
fill_mode='nearest')
Author And Source
이 문제에 관하여([토크ON세미나] 딥러닝 입문에서 활용까지 케라스(Keras) 3강 & 4강), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dydgjs2016/토크ON세미나-딥러닝-입문에서-활용까지-케라스Keras-3강-다층-퍼셉트론MLP-리뷰저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)