Discover us

About us

Projects

Blog

Events

Members

Development Blog

GDGoC CAU 개발자와 디자이너의 작업 과정과
결과물을 공유하는 공간입니다.

어떻게 프로젝트를 시작하게 되었고,
진행하면서 느낀 개발자와 디자이너의
생생한 스토리를 직접 확인해보세요!

Development

머신러닝

  • #DS/ML/DL
  • Jooyoung Lee
  • 2023. 9. 18.

머신러닝

0. 머신러닝

위키독스 “딥 러닝을 이용한 자연어 처리 입문” 챕터 01~06을 학습하는 중입니다.

1. 전체 데이터

1.1. 훈련: 훈련용, 검증용(모델의 성능 조정)

1.2. 테스트: 테스트용(모델의 성능 평가)

(X_train, X_test, y_train, y_test) = train_test_split(data_X, data_y, train_size=0.8, random_state=1)

2. 분류

2.1. Binary Classification: 선택지=2

2.1.1. Logistic Regression

2.1.1.1. 1/(1+e^-(wx+b)) Sigmoid function: 출력이 0과 1사이의 값을 가지면서 S자

출력값>= 0.5->1(True) 출력값<= 0.5->0(False)
model.add(Dense(1, input_dim=1, activation='sigmoid'))

2.1.1.2. Cross Entropy

model.compile(optimizer=sgd, loss='binary_crossentropy', metrics=['binary_accuracy'])

2.1.2. 다중 로지스틱 회귀: x가 2개

model.add(Dense(1, input_dim=2, activation='sigmoid'))

2.2. Multi-class Classification: 선택지>=3

model.add(Dense(1, input_dim=3, activation='linear'))

2.2.1. Softmax Regression

2.2.1.1. Softmax function

model.add(Dense(3, input_dim=4, activation='softmax'))

2.2.1.2. 원-핫 벡터: 단어의 유사성

y_train = to_categorical(y_train)y_test = to_categorical(y_test)

2.2.1.3. 크로스 엔트로피 함수

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

3. 회귀: 어떠한 연속적인 값의 범위 내에서 예측값

3.1. 다중 선형 회귀: 독립 변수가 2개 이상

model.add(Dense(1, input_dim=3, activation='linear'))

4. Supervised Learning

: 정답과 함께 학습
ex)자연어 처리

5. Unsupervised Learning

: 별도의 레이블이 없이 학습
ex)텍스트 처리 분야 토픽 모델링 알고리즘 LSA/LDA

6. Self-Supervised Learning

: 레이블을 만들어서 학습
ex)워드 임베딩 알고리즘 Word2Vec, 언어 모델 BERT

7. Confusion Matrix: TP, TN, FP, FN

7.1. 정밀도(Precision)

: TP/(TP+FP)

7.2. 재현율(Recall)

: TP/(TP+FN)

7.3. 정확도(Accuracy)

: TP+TN/(TP+FN+FP+TN), F1-Score

8. 선형 회귀(Linear Regression)

8.1. Simple Linear Regression Analysis

: y=wx+b

8.2. Multiple Linear Regression Analysis

: x는 여러 개

9. Objective function=Cost function=Loss function

회귀: Mean Squared Error
cost = mse_loss(y_pred, y)model.compile(optimizer=sgd, loss='mse', metrics=['mse'])

10. Optimizer

경사하강법(Gradient Descent)
0<학습률(learning rate) α<1
optimizer = tf.optimizers.SGD(0.01)sgd = optimizers.SGD(lr=0.01)

11. 3차원 텐서: 시퀀스 데이터

자연어 처리 (batch_size, timesteps, word_dim)