멋사 ai 스쿨 TIL _ (35) tensorflow

eve·2022년 11월 29일
0

likeLion

목록 보기
35/45

1. tensorflow 모델의 구성

# 용어 정리: units를 node, neuron 등으로 표현하기도 함.
# flatten이 입력층을 의미.
# 아래의 모델은 입력 - 은닉층 - 출력층으로 구성된 모델.

model = tf.keras.Sequential([
	# 입력층 (Flatten)
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    # 은닉층 (Dense): 활성화 함수에 렐루함수를 사용
    tf.keras.layers.Dense(128, activation='relu'),
    # 출력층 (Dense): 함수를 언급하지 않았으므로 default 함수인 softmax를 사용
    tf.keras.layers.Dense(10)
])

tensorflow와 pytorch의 차이점

  • 라이브러리 도구의 api 차이 (seaborn vs plotnine처럼)



2. 모델 컴파일

loss (손실 함수)

훈련 중 모델이 얼마나 정확한지 측정합니다. 모델을 올바른 방향으로 "조정"하려면 이 함수를 최소화해야 합니다. loss값을 보고 label이 어떤 형태인 지 알 수 있습니다.

  • 회귀: MAE, MSE
  • 분류: binary_crossentropy(이진분류)
    categorical_crossentropy
    (다중분류: one-hot-encoding)
    sparse_categorical_crossentropy
    (다중분류: ordinal Encoding)

optimizer (옵티마이저)

모델이 인식하는 데이터와 해당 손실 함수를 기반으로 모델이 업데이트되는 방식입니다.

  • optimizer는 경사하강법과 관련된 요소들을 지정할 수도 있지만, 아담에 비해 대부분 속도가 느린 편이다.
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

metric (메트릭)

훈련 및 테스트 단계를 모니터링하는 데 사용됩니다. 다음 예에서는 올바르게 분류된 이미지의 비율인 정확도를 사용합니다.

  • 분류: accuracy, AUC
  • 회귀: MAE, MSE



3. 활성화 함수

뉴런의 시냅스가 전기신호를 출력하듯이, 은닉층과 출력층 사이에서도 출력값을 결정하는 함수이다. 뉴런이 신호를 생성하는 것이 출력값에서 가중치를 조정하는 것과 유사하다. 선형 결합들을 다양한 형태의 비선형 결합을 조절해준다.

Sigmoid

특징

  • 가장 기본적인 함수 (logistic)
  • 범위: [0, 1]

장점

: 모델 제작에 필요한 시간을 단축시킴

단점

: 미분 범위가 짧아 기울기 손실(정보손실, Gradient Vanishing) 현상이 나타난다.

활용

: 로지스틱 회귀(logistic regression), 이진 분류 (binary classification) 등


tanh

특징

  • 하이퍼볼릭 탄젠트라고 하며, sidmoid의 대체 함수.
  • 삼각함수와 유사한 성질을 가지며, 표준 쌍곡선을 매개변수로 표시할 때 나오는 함수이다.
  • 범위: [-1, 1]

장점

: 데이터 중심을 0으로 위치시키는 효과로, 다음 층의 학습에 용이한 형태가 됨 (sigmoid와 비교 시, 출력 범위가 더 넓으며, 경사면이 큰 범위가 더 크기 때문에 수렴 속도가 빨라져 학습 성능이 개선됨)

단점

: sigmoid와 동일하게, 정보 손실 발생.

profile
유저가 왜 그랬을까

0개의 댓글