머신러닝
-
머신러닝: 파이썬 Pytorch 사용하기!머신러닝 2020. 11. 9. 19:05
1. torch.rand(a, b) : 0 ~ 1사이의 값을 갖는 a x b 텐서생성 import torch x = torch.rand(5, 3) x tensor([[0.2107, 0.1415, 0.2014], [0.3747, 0.4420, 0.9662], [0.8733, 0.0158, 0.6805], [0.8282, 0.7829, 0.2063], [0.9674, 0.3998, 0.0489]]) tensor형태로 출력 2. tensor 값 지정해주기 x = torch.tensor([[0,1,1,2], [2,2,3,1]]) x tensor([[0, 1, 1, 2], [2, 2, 3, 1]]) 3. torch.zeros(a, b) : 0 값을 가진 a x b의 tensor 생성 torch.ones(a, b)..
-
머신러닝: Training Neural Networks 공부하기2 (Optimization, Learning Rate, Regularization)머신러닝 2020. 10. 20. 22:59
우선 경사하강법(Gradient descent)는 가장 작은 loss를 갖는 W값을 찾기 위해 gradient를 이용한다. 그리고 SGD는 이를 mini batch를 이용하여 더 효율적으로 W를 찾는 방법이다. 하지만 SGD는 다음과 같은 상황들에 대해서 문제점을 지닌다. 만약 Loss 값이 급격하게 증가하거나 감소한다면 이 때는 얕은 차원이나 가파른 경사 때문에 발산하거나 진동하여 최적의 W를 찾는 과정은 느려진다. 또한 다음과 같이 경우 문제점을 갖는다. 1) local minima를 갖는 부분 우리가 원하는 W는 가장 작은 loss가질때이다. 하지만 첫번째 그래프는 global minima가 아닌 local minima에서 optimization을 멈출 가능성이 있으므로 문제가 발생한다. 2) sa..
-
머신러닝: Training Neural Networks 공부하기1(Activation function, Data preprocessing, Weight Initialization, Batch Normalization, Transfer Learning)머신러닝 2020. 10. 20. 21:12
이번 포스팅은 Neural Network의 Training을 위해 필요한 개념에 대해 알아본다. 다음과 같은 순서로 알아보겠다. - Activation Functions - Data preprocessing - Weight Initialization - Batch Normalization - Transfer learning 1. Activation Functions 1) sigmoid 0부터 1까지의 값을 갖으며 뉴런에서 firing하는 형태를 따서 만들었다 한계 - zero-centered가 아니다. - exp이기 때문에 계산이 복잡 - satureted 된 부분은 gradient가 나오지 않는다. 예를 들어 x = -10이거나 10일 때 기울기 값이 0이므로 backpropagation을 통해 gra..
-
머신러닝: 역전파(back propagation) 공부하기(개념, 예제)머신러닝 2020. 10. 8. 01:19
머신러닝: 최적화(Optimization) 공부하기 (Gradient descent, SGD) Optimization에 대해 알아보기전, Loss function에 대한 선행이 되어 있어야 한다. 다음과 같이 이미 classifer가 된 결과물이 있다. 하지만 보시다시피 각각의 이미지 값에 대해서 해당 label(cat, car, frog)들. seungjuitmemo.tistory.com 계산 결과와 정답의 오차를 구해 이 오차에 관여하는 가중치(W) 값들를 수정하여 오차가 작아지는 방향으로 일정 횟수를 반복해 수정하는 방법이다. Gradient descent를 이용한 방식은 시간이 너무 오래걸리므로 Backpropagation을 이용하여 효율적으로 d..
-
머신러닝: Image Feature를 이용한 Classification? Neural Network란?머신러닝 2020. 10. 7. 20:59
다음과 같은 class들이 있다고 했을때 어떻게 분류할까? 일반적으로 Linear classify를 많이 이용한다. 하지만 위와 같이 배치된 class들을 linear로 구분할 수 없기 때문에 더 높은 차원으로 transformation해서 linear classification한다. 저번포스팅에서는 image pixel을 이용하여 classification 했었다면 이번에는 Image feature를 이용한다. Image feature란? - 이미지안의 직선, edge등의 정보를 말한다. Image의 feature을 값을 인풋으로 이용해서 더 높은 차원으로 옮기고 linear classify한다. - 자주 사용되는 Image Feat..
-
머신러닝: 최적화(Optimization) 공부하기 (Gradient descent, SGD)머신러닝 2020. 10. 5. 11:48
Optimization에 대해 알아보기전, Loss function에 대한 선행이 되어 있어야 한다. 머신러닝: Loss function이란? (Multiclass SVM loss, Softmax Classifier ) 다음과 같이 이미 classifer가 된 결과물이 있다. 하지만 보시다시피 각각의 이미지 값에 대해서 해당 label(cat, car, frog)들은 최고의 값을 갖지 못한다. 이러한 문제점�� seungjuitmemo.tistory.com 머신러닝 최적화란 loss function의 결괏값을 최소화하는 모델의 인자를 찾는 것 기울기 개념을 이용하여 경사도가 가장 심한 W의 element를 찾는다. W에 적당히 작은 h를 더해서 dW를 구..
-
머신러닝: Loss function이란? (Multiclass SVM loss, Softmax Classifier )머신러닝 2020. 10. 1. 20:40
다음과 같이 이미 classifer가 된 결과물이 있다. 하지만 보시다시피 각각의 이미지 값에 대해서 해당 label(cat, car, frog)들은 최고의 값을 갖지 못한다. 이러한 문제점들을 개선하기 위해 만들어낸 개념이 loss function이다. (Loss를 줄이는 Optimization에 대해서는 이번 포스팅에서 다루지 않는다) loss란 쉽게 말해서 들어온 인풋 이미지가 머신러닝 결과 잘 들어 맞을수록 낮고, 반대로 잘 들어맞지 않는다면 높다. 즉, 현재 내가 판단하는게 얼마나 좋은 위치인가임을 알려준다. Loss function은 다음과 같이 나누어진다. - Multiclass SVM loss - Softmax Classifier . 위와 ..
-
머신러닝: K-nearest neighbors란? 왜 Linear classification을 사용할까머신러닝 2020. 9. 26. 12:56
우선 K-nearest neighbors에 대해서 먼저 알아보고 왜 Linear classification을 사용하는지 알아보자. 1. K-Nearest Neighbors 새로운 데이터를 받았을 때 가장 가까이 있는 것이 어떤 데이터인가를 구분하여 classification하는 방식이다. 위는 K 값에 따라 classification한 K-nearest neighbors 방법인데 query 데이터와 가장 유사한 기준의 갯수 K를 잡아서 어떤 클래스인지 확인한다. 쿼리 데이터와 가장 유사한 클래스를 찾기 위해 distance를 구하고 현재 disatnce를 구하는 두가지 방법이 사용된다. (일반적으로 K값이 증가하면 이상치의 영향은 줄지만 분류자체를 못하게 될 수도 있다.) 1) L1 distance 두 ..