Deep Learning_1

YJ·2023년 6월 24일
0

▷ 오늘 학습 계획: 딥러닝 강의(1~3)

📖 01_Beginning of Deep Learning

딥러닝 기초

  • TensorFlow
    Tensor(벡터나 행렬)가 Graph(텐서가 흐르는 경로)를 통해 흐른다.

  • Neural Net
    뉴런: 입력, 가중치, 활성화함수, 출력으로 구성
    가중치: 처음에는 초기화를 통해 랜덤값, 학습 과정에서 일정한 값으로 수렴
    뉴런 → layer → net(망)

  • loss: 에러를 측정하는 함수(ex. MSE: mean squared error)

  • optimizer: loss 함수를 최소화하는 가중치를 찾아가는 과정에 대한 알고리즘
    (ex. rmsprop)

import tensorflow as tf
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(1, input_shape=(2, )),
]) # 출력은 1개, input shape 명시
model.compile(optimizer='rmsprop', loss='mse')
model.layers
model.summary()
hist = model.fit(x_data, y_data, epochs=5000)
# epochs: 지정된 횟수만큼 학습
# batch_size: 한번의 학습에 사용될 데이터의 수
plt.plot(hist.history['loss'])
model.predict(np.array([60, 25]).reshape(1,2))
W_, b_ = model.get_weights()

XOR 문제

  • OR: 둘 중에 하나라도 1이면 1, 나머지 0
  • AND: 둘 다 1이면 1, 나머지 0
  • XOR: 둘이 다르면 1, 같으면 0
    선형 모델로는 XOR 해결 안됨(직선 하나로 부족: 뉴런 하나로는 풀 수 없다)

분류 문제(iris)

back-propogation(역전파)

  • gradient vanishing: 레이어가 깊을수록 업데이트가 사라져가는 현상(underfitting)
  • ReLU(rectified linear units)

뉴럿넷에게 답을 회신받는 방법

  • value: output 그냥 받기
  • O/X: output에 sigmoid
  • 분류: output에 softmax

Gradient Descent

  • gradient: 현 지점의 기울기
  • descent: 에러를 낮추는 방향
  • learning rate: 한 발자국 크기
  • 한 번 움직일 때 모든 데이터를 다 쓴다.
    cf. SGD(Stochastic Gradient Descent)는 batch_size를 지정할 수 있다.

MNIST

CNN(Convolutional neural network)

  • 사진의 특징을 검출하는 기능을 가진 layer, 분류
  • convolutional filter
    특정 패턴이 있는지 박스로 훑으며 마킹 → 나온 숫자를 activation에 넣어 나온 값으로 이미지 지도를 새로 그린다.
  • 풀링 layer: 이미지가 줄어든다.
  • MaxPooling: 사이즈를 점진적으로 줄이는 법
  • Zero padding: 사이즈를 유지하기 위해 conv 전에 0을 모서리에(padding='same')
  • Dropout: 과적합 방지, 융통성↑(학습 시킬 때 일부러 정보 누락 또는 노드 끄기)

▷ 다음주 학습 계획: 딥러닝 강의

[이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.]

0개의 댓글