ML
-
[ICLR 2022] Learning Strides in Convolutional Neural Networks - 아는 만큼 읽기ML/NLP 2022. 6. 20. 18:03
Intro 글로벌 최고 권위 머신러닝 학회 'ICLR(International Conference on Learning Representations) 2022'에서 Outstanding Paper Award를 수상한 7개의 논문 중 가장 흥미를 끌었던 논문은 CNN 관련 논문이었다. "Learning Strides in Convolutional Neural Networks" Learning Strides in Convolutional Neural Networks Convolutional neural networks typically contain several downsampling operators, such as strided convolutions or pooling layers, that prog..
-
[NLP] 모두를 위한 딥러닝 : "Linear Regression cost함수 최소화"ML/NLP 2020. 5. 26. 16:45
Linear regression에서 Cost function 최소화 1. Cost function 그래프 개형 알아보기 위의 결과를 그래프로 찍어보면 다음과 같다. 그래프에서 y축이 cost이니까, 그 점의 값이 최소인 점을 찾는 것이 Linear Regression 학습의 목표! 즉, 점 (1, 0)을 기계적으로 찾아내야 함 그걸 찾을 수 있는 방법 -> Gradient descent algorithm 2. Gradient descent algorithm 최소 지점을 찾기 위해 경사를 따라 내려가는 알고리즘 ex. 등산에서 하산할 때 경사가 낮은 곳으로 계속 가면 되는 것처럼! cost function을 최소화함 많은 최소화 문제에 사용됨 주어진 cost function( = cost(W, b) )을 ..
-
[NLP] 모두를 위한 딥러닝 : "Linear Regression 의 개념"ML/NLP 2020. 5. 26. 15:28
Linear Regression? 1. Training data set 준비 x y 1 1 2 2 3 3 2. (Linear) Hypothesis 세우기 Training set의 점들의 집합을 Linear한 선으로 예측해보는 것 예측 상황 예시) 공부 시간이 많으면 성적이 좋다, 훈련 시간이 많으면 결과가 좋다, 크기가 클 수록 가격이 높다 3. 어떤 Hypothesis가 좋은지 판단하는 Cost(Loss) function - Linear Hypothesis가 얼마나 틀렸나 확인할 때 계산할 수 있는 함수 = Cost function - 단순히 (예측값-정답)하기 보다, (예측값-정답)을 제곱함으로써 크게 잘못 예측한 것이 더 많은 패널티를 주게 됨 4. Linear regression의 학습은 Cos..
-
[NLP] 모두를 위한 딥러닝 : "머신러닝의 개념과 용어"ML/NLP 2020. 5. 26. 13:53
머신러닝(ML) 기본 용어와 개념 설명 *Explicit programming 소프트웨어 인풋/아웃풋이 있는 로직 * Machine learning Arthur Samuel이 제시 explicit programming 없이 개발자가 아닌 컴퓨터가 자료나 현상에서 배우고 반응하면 어떨까 * ML의 학습 방법 1. Supervised learning 정해져있는 Label이 정해진 데이터(training set)를 가지고 학습하는 것 ex. Image labeling - 사진이 개인지 고양이인지 구분하기 위해 개 사진 고양이 사진을 학습시킴 (Label이 달려있음) Email spam filter Predicting exam score 2. Unsupervised learning Label이 정해지지 않은 데..
-
[NLP] 합성곱 신경망 CNN : 합성곱/풀링 계층 구현ML/NLP 2020. 5. 12. 20:52
이번 포스팅에서는 합성곱 계층과 풀링 계층을 파이썬으로 구현해보겠다. 4차원 배열 CNN에서 계층 사이를 흐르는 데이터는 4차원이다. 예를 들어 데이터의 형상이 (10, 1, 28, 28)이라면, 이는 높이 28, 너비 28, 채널 1개인 데이터가 10개라는 이야기다. import numpy as np x = np.random.rand(10, 1, 28, 28) x.shape Out: (10, 1, 28, 28) x[0].shape Out: (1, 28, 28) x[1].shape Out: (1, 28, 28) CNN은 4차원 데이터를 다룬다. 그래서 합성곱 연산의 구현은 복잡해질 것 같지만, im2col이라는 편의 함수를 사용해 간단하게 구현이 가능하다. im2col로 데이터 전개하기 im2col은 입..
-
[NLP] 합성곱 신경망 CNN : 합성곱 연산, 배치 처리, 풀링 계층ML/NLP 2020. 5. 10. 01:32
이번 포스팅의 주제는 합성곱 신경망(Convolutional Neural Network, CNN)이다. CNN은 이미지 인식과 음성 인식 등 다양한 곳에서 사용된다. 특히, 이미지 인식 분야에서 딥러닝을 활용한 기법은 거의 다 CNN을 기초로 한다. CNN의 메커니즘을 설명해보고, 다음 포스팅에서 파이썬으로 구현해보겠다. 전체 구조 기존의 신경망에서는 못봤던 게 새로 등장한다. 합성곱 계층(convolutional layer)과 풀링 계층(pooling layer)이다. 합성곱 계층과 풀링 계층을 자세히 설명하기 전에, 이 계층들을 어떻게 조합하여 CNN을 만드는지 보겠다. 지금까지 본 신경망은 인접하는 계층의 모든 뉴런과 결합되어 있었다. 이를 완전연결(fully-connected, 전결합)이라고 하며..
-
[NLP] 딥러닝 신경망에서 하이퍼파라미터 최적화 구현하기ML/NLP 2020. 4. 24. 14:29
신경망에는 하이퍼파라미터가 다수 등장한다. 각 층의 뉴런 수, 배치 크기, 매개변수 갱신 시의 학습률, 가중치 감소 등이 있다. 하이퍼파라미터의 값은 모델의 성능에 크게 영향을 미치기 때문에 그 값을 결정하기까지 많은 시행착오를 겪는다. 그래서 이번 포스팅에서는 하이퍼파라미터의 값을 최대한 효율적으로 탐색하는 방법을 설명하겠다. 검증 데이터 지금까지는 데이터셋을 훈련 데이터와 시험 데이터 두 가지로 분리해 이용했다. 훈련 데이터로는 학습을 하고, 시험 데이터로는 범용 성능을 평가했다. 앞으로 하이퍼파라미터를 다양한 값으로 설정하고 검증할 텐데, 여기서 주의할 점은 하이퍼파라미터의 성능을 평가할 때는 시험 데이터를 사용하면 안 된다는 것이다. 하이퍼파라미터 값이 시험 데이터에 오버피팅되기 때문이다. 그래서..
-
[NLP] 오버피팅을 막아보자: 가중치 감소, 드롭아웃ML/NLP 2020. 4. 24. 14:07
기계학습에서는 오버피팅이 문제가 되는 일이 많다. 오버피팅이란 신경망이 훈련 데이터에만 지나치게 적응되어 그 외의 데이터에는 제대로 대응하지 못하는 상태를 말한다. 기계학습은 범용 성능을 지향하므로 훈련 데이터에는 포함되지 않는, 아직 보지 못한 데이터가 주어져도 바르게 식별해내는 모델이 바람직하다. 오버피팅 오버피팅은 주로 다음의 두 경우에 일어난다. 매개변수가 많고 표현력이 높은 모델 훈련 데이터가 적음 먼저 이 두 요건을 일부러 충족시켜 오버피팅을 일으켜보겠다. 60,000개의 MNIST 데이터셋의 훈련 데이터 중 300개만 사용하고, 7층 네트워크를 사용해 네트워크의 복잡성을 높이겠다. 각 층의 뉴런은 100개, 활성화 함수는 ReLU를 사용한다. import os import sys sys.pa..