본문 바로가기
  • 데이터에 가치를 더하다, 서영석입니다.

공부하는 습관을 들이자43

[딥러닝 자연어처리] 8-6. (08) 케라스의 함수형 API - (10)다층 퍼셉트론으로 텍스트 분류하기 딥러닝을 이용한 자연어처리 입문 #8-6. (08) 케라스의 함수형 API(Keras Functional API) - (10)다층 퍼셉트론으로 텍스트 분류하기 08) 케라스의 함수형 API(Keras Functional API) Sequential API는 복잡한 모델을 만드는데 한계가 있음 functional API는 입력의 크기(shape)를 명시한 입력층(Input layer)을 모델의 앞단에 정의 1.전결합 피드 포워드 신경망(Fully-connected FFNN) from tensorflow.keras.layers import Input, Dense from tensorflow.keras.models import Model inputs = Input(shape=(10,)) #10개의 입력을 받는.. 2023. 12. 22.
[딥러닝 자연어처리] 8-5. (6) 기울기 소실과 폭주 - 07) 케라스 훑어보기 딥러닝을 이용한 자연어처리 입문 #8-5. (6) 기울기 소실과 폭주 - 07) 케라스 훑어보기 6. 기울기 소실(Gradient Vanishing)과 폭주(Exploding) 기울기 소실 : 역전파 과정에서 입력층으로 갈수록 기울기가 점차적으로 작아지는 현상 ⇒ 입력층에 가까운 층들에서 가중치들이 업데이트가 제대로 되지 않음 기울기 폭주 : 기울기가 점차 커져 가중치들이 비정상적으로 큰 값이 되는 현상 1) ReLU와 ReLU의 변형들 시그모이드 함수를 사용할 때 0 또는 1에 수렴하면서 기울기가 0에 가까워짐 → 기울기 소실 ⇒ 은닉층의 활성화 함수로 ReLU 나 Leaky ReLU를 사용 2) 그래디언트 클리핑(Gradient Clipping) 기울기 폭주를 막기 위해 임계값을 넘지 않도록 값을 감.. 2023. 12. 20.
[딥러닝 자연어처리] 8-4. (4.) 역전파 이해하기 - (5) 과적합을 막는 방법들 딥러닝을 이용한 자연어처리 입문 # 8-4. (4.3) 역전파 이해하기 - (5) 과적합을 막는 방법들 4.3 역전파 이해하기 1) 인공 신경망의 이해 예시 인공 신경망 = 입력층, 은닉층, 출력층으로 3개의 층으로 구성 변수 z = 이전층의 모든 입력이 각각 가중치와 곱해지 값이 모두 더해진 가정합. z를 지난 h or o = z가 시그모이드 함수를 지난 후의 값 2) 순전파 3) 역전파 1단계 출력층과 N층 사이의 가중치를 업데이트하는 단계 → 역전파 1단계로 이해가능 4) 역전파 2단계 5) 결과 확인 이후 실제로 순전파를 다시 한 번 진행해 오차가 감소되었는 지를 확인 5. 과적합을 막는 방법들 1) 데이터의 양 늘리기 1차원적으로 데이터 양을 늘릴 수록 데이터는 일반적인 패턴을 학습하기 때문에 .. 2023. 12. 19.
[딥러닝 자연어처리] 8-3. (4) 딥러닝의 학습 방법 딥러닝을 이용한 자연어처리 입문 # 8-3. 4) 딥러닝의 학습 방법 1. 손실 함수 실제값, 예측값의 차이를 수치화해주는 함수. 오차와 손실 함수의 값은 비례 회귀 = MSE, 분류 = 크로스 엔트로피를 주로 이용. 1 ) MSE 연속형 변수를 이용할 때 이용 model.compile(optimizer='adam', loss='mse', metrics=['mse']) #loss에 문자열 mse을 써주면 돼. model.compile(optimizer='adam', loss=tf.keras.losses.MeanSquaredError(), metrics=['mse']) #이런 식으로 표현도 ok. #하지만 딥러닝 자연어 자체가 일반적으로 분류 문제이기 때문에 MSE보단 Cross-entropy를 더 많게 .. 2023. 12. 18.
[딥러닝 자연어처리] 8-2. (3). 행렬곱으로 이해하는 신경망 딥러닝을 이용한 자연어처리 입문 # 8-2. (3). 행렬곱으로 이해하는 신경망 1. 순전파 입력값 → 입력층, 은닉층 지나며 각 층에서의 가중치로 연산돼 출력층으로 향해 → 예측값 추출. 2. 행렬곱으로 순전파 이해하기 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense model = Sequential() # 3개의 입력과 2개의 출력 model.add(Dense(2, input_dim=3, activation='softmax')) model.summary() Model: "sequential" ________________________________________________________.. 2023. 12. 15.
[딥러닝 자연어처리] 8. 1) 퍼셉트론 ~ 2) 2. 인공 신경망 훑어보기 딥러닝을 이용한 자연어처리 입문 # 8. 1) 퍼셉트론 ~ 5) 인공 신경망 훑어보기 1. 퍼셉트론 가중치의 값이 크면 해당 입력값이 중요하다고 의미하고, 각 입력값에 각각의 가중치를 곱해줘서 y로 출력해주는 것 if sum(xiwi) > 임계치 → y = 1, 작은 경우 0으로 출력. 임계치를 좌변으로 넘겨 편향 b로 표현도 가능. b또한 퍼셉트론 입력으로 사용 이런 식으로 값을 넘게 되면 y를 1, 아니면 0으로 이해한다. 출력값을 변경시키는 함수 → 활성화 함수 퍼셉트론은 이를 계단 함수로 用, 이후엔 다양한 활성화 함수 이용됨. 시그모이드 or 소프트맥수 함수 또한 이의 일부분. 퍼셉트론에서 활성화 함수만 시그모이드 함수로 바꿔주면 로지스틱 회귀랑 동일해지는 것을 알 수 있음 단층 퍼셉트론 값을 .. 2023. 12. 14.