딥러닝과 뉴럴 네트워크(part 3)

hotmoist·2021년 11월 16일
0
post-custom-banner

Udemy 학습 내용 정리

Keras 사용 예시

multi-classification

model = Sequential()

model.add(Dense(64, activation='relu', input_dim=20))
model.add(Dropout(0.5))
model.add(Dense(64, activation-'relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9,
nesterov=True)
model.compile(loss='categorical_crossentropy', # loss function
optimizer=sgd, metrics=['accuracy']

binary classification

model = Sequential()
model.add(Dense(64, input_dim=20, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid')) # for binary classification, use sigmoid activation function
model.complile(loss='binary_crossentropy', optimizer='rmsprop',
metrics=['accuracy'])

CNN

  • 데이터가 행에 맞추어 정렬되어있지 않는 경우
    • 특징을 추출하기 위한 이미지
    • 기계 해석
    • 문장 분류
    • 등등..
  • 특정정한 구간에만 지정된 것 뿐만 아니라 다른 특징들도 뽑음
    • 사진의 "STOP" 사인, 문장안의 단어 등
  • 사람의 시각 피질의 역활과 같음
    • 이미지를 컨볼루션 연산(합성곱)을 이용함
    • 연산의 결과를 이용하여 복잡도(?)를 이용함

CNN with Keras

  • source 데이터의 차원이 적절해야함
  • conv2D 레이어 타입은 실제 2D 이미지를 합성곱 실행
  • MaxPooling2D → 2D layer의 사이즈를 특정 구간의 최대 값만 추출하여 크기를 줄임
  • Flatten layer → 2D layer를 1D layer로 줄여준다

학습하기가 어려움

  • 자원이 매우 많이 필요
  • 많은 hyperparameter
  • training data 수집이 매우 어려움
profile
No coffee, No coding
post-custom-banner

0개의 댓글