본 게시글은 충남대 정상근 교수님의 수업자료를 바탕으로 작성한 글입니다. 자연어처리는 컴퓨터가 인간의 말을 다루도록 하는 것이다.그럼 인간의 말을 컴퓨터에게 알려줘야 할 텐데, 뭐 이렇게 한글, 영어... 이런 식으로 알려줄 수는 없다.컴퓨터는 숫자로 모든 것을 이해한다.그렇다면 인간의 말을 숫자로 어떻게 나타낼까? 1. 나타내려 하는 대상에서 '무언가'를 추출해 컴퓨터에 입력하는 과정 이때 두 가지 방법이 있다. 첫 번째는 사람이 특징을 추출하는 것이다. 만약 고양이를 컴퓨터에 입력하고 싶다면, 바깥쪽으로 갈수록 눈이 올라가고, 귀는 뾰족하고, 꼬리가 길고.. 등등! 고양이의 특징을 생각해낼 수 있을 것이다. 두 번째는 기계가 '스스로' 특징을 추출해내는 것이다. 데이터 중심 표현!데이터를 엄..
전체 글
1. DNN ArchitectureDeep Neural Networks, DNN 은 많은 hidden layer가 있는 NN이다. 큰 데이터셋을 학습시키고 싶을 때 더 많은 연결이 있는 high-capacity model을 사용해야 한다. 일단 층이 깊을수록 일반화가 잘된다. 그리고 sparse connection과 함께라면 일반화가 더욱 잘된다. 이게 모델이 크다고만 해서 학습이 더 잘 되는 것만은 아니다. 첫 번째로, high capacity로 인한 과적합 문제가 발생할 수 있다.이때 해결책은 정말 다양하다. 정규화, Drop-out, 데이터 증강, parameter sharing, sparse connection이 그 해결책이다. 두 번째로, high capacity로 인한 느린 최적화 문제가 발생..
* 일단. normalization과 regularization의 차이는,normalization은 '정규화'로, 데이터를 스케일링하여 0~1 사이의 값으로 만드는 것이다.데이터 불균형을 줄이고 Local Minimum에 빠질 확률을 줄여준다. regularization은 overfitting을 막기 위해 '규제'하는 것이다.weight를 조정할 때 제약을 주는 것. L1, L2 이런 애들..~ 그래서 이 게시글에선 regularization에 대해 알아보겠다. 기존 ML에서는 파라미터가 애초에 적었는데, 딥러닝은 파라미터가 많아지면서 표현력이 늘었다.근데 이렇게 되니까 과적합의 위험도 생기게 된다. high capacity 모델이라 ㅠㅠ 그래서 정규화를 하는데, test data에 잘 일반화되는 모델을..
optimizer.zero_grad()를 쓰는 이유-> 그래디언트의 누적으로 엉뚱하게 업데이트 됨 모델 용량이 클 때의 특징-> 훈련 데이터에 높은 표현력, 과적합 위험 증가, 훈련 시간과 자원 소모 증가 엔트로피가 높다는 것의 의미-> 불확실한 정보다 엔트로피, 쿨백, CE관계-> H(P, Q)=H(P)+KB(P, Q) 활성화함수가 비선형성 가지는 이유-> 안그러면 아무리 층 쌓아도 선형.. ex. ax+b라는 층을 아무리 쌓아도 결과적으로 ax+b임 Bagging, Dropout, L2 (정규화들)구분-> Bagging : 여러 모델 병렬 학습해서 평균내갖고 모델 분산 감소-> Dropout : 한 모델 안에서 학습 시마다 랜덤 구조-> L2 : 한 모델 안에서 손실 함수에 L2 정규화항 적용 Bat..
MLE(Maximum Likelihood Estimation)모델과 표본이 주어졌을 때, 확률분포의 매개변수 추정에 사용되는 통계적 기법모델을 지정하고 -> 우도함수를 정의하고 -> 이 함수를 최대화하는 파라미터를 찾는 과정여기서 우도 함수를 정할 때는, 일반적으로 최대우도(ML)법칙을 사용한다. MLE = argmax ∏ᵢ p_model(xᵢ; θ)로 나타낼 수 있는데, 이건 계산이 어려우니깐 log를 취해서 pi가 아니라 sigma로 바꾼다.예를 들어, 관측된 데이터로부터 평균과 분산을 여러 쌍 추정한 후, 이 데이터가 그 중 어떤 분포에서 온 것인가를 구하는 것이 목표이다.조건부 로그 우도는 이건데.. 왜 하는 건진 몰겠음θ_ML = argmax ∑ log P(yᵢ|xᵢ; θ) Classificat..
ML의 정의어떤 컴퓨터 프로그램이 경험 E로부터 어떤 과제 T에 대해 성능 P가 향상되도록, 즉 학습하는 것 Learning AlgorithmTask T보통 사람이 고정된 규칙으로 풀기 어려운 문제를 주로 던진다.지도(분류, 회귀), 비지도(클러스터링), 강화학습으로 분류할 수 있다.지도학습은 훈련 데이터에 정답 label이 있어서 입력으로 분류/수치를 예측 가능한 것이다.비지도학습은 훈련 데이터에 정답 label이 없이 입력으로 유사한 그룹을 찾는 것이다.강화학습은 에이전트가 환경과 상호작용하며 행동을 하고 보상을 받으며 더 나은 전략을 학습하는 것이다. Performance P이는 성능을 평가하는 방법인데, 정량적으로 모델의 성능을 측정한다. 분류 T에서는 Accuracy, Recall, Precis..
딥러닝이란,input과 param들로 식을 세워 도출된 output이 GT에 가까워지도록 param을 조정하는 것!딥러닝에 필요한 것들은,loss : GT와 y_hat간 차이lr : param을 얼마나 바꿀지gradient : loss 대비 param의 방향(비율)model : DNN 모델optimizer : param 바꾸는 애dataset .. 이렇게 필요하다. chain rule은 아래와 같다.단순 선형 회귀를 예시로 들면, y=ax+b에 y, x를 대입했을 때 loss가 최소가 되도록 하는 a, b를 찾는 것이다.그리고 이때는 함수가 얼마나 괜찮은지를 판별하는 평가 metric으로 주로 MSE를 사용한다. 또 이렇게 작아질수록 좋은 metric은 loss로도 함께 쓰일 수 있다.이런 단순 회귀식은..
ML이란?컴퓨터가 특정 패턴을 배우고 분석하는 것Feature(독립적으로 측정가능한 것, ML model의 입력으로 쓰인다.) Space에 '선'을 긋는 것Feature와 Label에 의해 정의된 train data로부터 decision boudary를 찾는 것 초기에는 하드코딩, 형식적이었지만.현대는 컴퓨터가 경험을 배우고, 데이터에서 패턴을 추출해 지식을 얻을 줄 알게 되었다.여러 종류가 있고, 예를 들어 그 중 이미지 데이터 쪽을 봐보겠다.Object Detection은 네모 박스로 object가 있는 부분을 detect하는 것,Instance Segmentation은 객체의 형태를 따라 선을 따고, 그 덩어리가 어떤 객체인지 파악하는 것이다. DL은,여러 Layer를 쌓는 것이고, Layer를 쌓..