Computer Science
Deep Learning (3)
Deep Learning (3)
2021.11.18지난 시간에 배운 내용을 잠깐 짚고 가자. Linear System으로는 복잡한 모델을 처리할 수 없어 활성함수를 통해 NonLinear을 도입해서 사용한다. 가중치 W는 Backpropagation을 통해 Gradient Descent를 통해 갱신한다. 이제 활성함수에 어떤 것들이 들어갈 수 있는지에 대해 알아보자. 활성 함수들의 조건으로는 증가함수여야하고, backpropagation이 원활하게 진행될 수 있도록 Gradient 값 (미분값) 이 깔끔하게 나와야 한다. (미분값에 집중하기보다는 미분을 하는 이유에 집중해서 공부해보자.) 우리에게 익숙한 함수인 Sigmoid function이 주로 쓰이다가, 다양한 함수들을 적용해보며 특정 함수가 영상 인식, 자연어처리 등 특정 분야에 훌륭한 결과를 보..
Deep Learning - Backpropagation
Deep Learning - Backpropagation
2021.11.14단일 층으로 구성돼있는 Neural Network에는 Gradient Descent를 사용하는게 합리적이다. Backpropagation은 여러 층으로 구성된 상황에서 오류가 최소가 되는 가중치 w를 결정하는 방법이다. 기본적인 틀은 Gradient Descent를 따른다. 먼저 Computation Graphs와 Loss function을 정의한다. Loss 함수는 평가지표를 위해 정의한다. (Cost 함수로도 불림) 입력값과 weight(가중치)를 통해 출력값을 도출한다. (FORWARD DIRECTION) 이 때 처음 가중치는 무작위로 정한다. (Gradient Descent와 비슷함) 다음으로 출력값과 정답값을 통해 Loss를 계산하고. Loss를 통해 가중치를 업데이트한다. (BACKWARD D..
Deep Learning (2)
Deep Learning (2)
2021.11.14Neuron 은 신경계를 구성하는 세포이다. 지난 시간에 Deep Neural Network를 배웠는데, 여기서 Neural 단어는 딥러닝이 인간의 두뇌와 유사한 과정으로 동작하기 때문이다. 사진이 뇌 속의 뉴런인데, 뉴런 그 자체는 간단하다. 전기적 자극을 받아들이고 활성화할지, 비활성화할지 결정하는 간단한 동작을 수행한다. 하지만 뉴런들이 붙고, 그루핑하고, Network를 형성하게 되면 훨씬 복잡한 생각을 할 수 있게 된다. 뉴런의 기본적인 동작 방식이다. 한 뉴런의 출력을 다른 뉴런이 입력으로 받아들이고, 위의 과정을 반복한다. 뉴런들의 동작 방식을 연구한 결과 인공신경망(Perceptron)이 발명됐다. 입력값들을 받아들이고, (x0 ~ xn) 각각의 입력에 weight를 붙여준다 (w0~wn)..
Deep Learning (1)
Deep Learning (1)
2021.11.14전통적인 Machine Learning에 어떤 문제가 있어서 Deep Learning이 도입됐고, Deep Learning이 그 문제를 어떻게 극복했는지에 대해 알아보자. 머신러닝에서 경사하강법 (Gradient Descent) 방법을 통해 Cost를 최소화했다. 딥러닝도 Cost를 최소화하는 관점에서는 동일하지만, 딥러닝에 경사하강법을 사용할 수 없다. 모듈의 복잡도가 훨씬 복잡해지는 등 여러 가지 문제가 발생했기 때문인데 뒤에서 자세히 알아보자. 경사하강법을 사용하지 않는 대신, 딥러닝에서는 경사하강법에 기반하지만 좀 더 복잡한 문제에 적용할 수 있는 매커니즘인 Backpropagation(오류 역전파 알고리즘)을 사용해 Cost를 최소화한다. 이렇듯 최신 기술인 Backpropagation을 이해하..
Machine Leaning - Overfitting
Machine Leaning - Overfitting
2021.10.24지난 시간에 Linear Model의 Regression과 Classification을 배우고 Gradient Descent에 대해 배웠다. 그러면 배운 걸 바탕으로 딥러닝, 머신러닝에 바로 활용하면 참 좋은데.. 그냥 가져다 쓰면 여러 가지 문제점이 생긴다. 1. Overfitting (해결책). Regularization Overfitting. 무언가 굉장히 타이트하게 맞는다는거다. 어느 특정한 데이터에 대해서 딱 들어맞고, variation이 조금이라도 있으면 원하는 값을 얻을 수 없는 문제이다. 딥러닝을 할 때 발생하는 대표적인 문제인데, 이 문제를 해결하기 위해 Regularization을 활용한다. ML과 DL의 학습 과정을 살펴보자. (DL은 ML과 세부적인 부분에서는 다르지만, 전체적으로는..
Linear Model - Classification
Linear Model - Classification
2021.10.24지난 시간에 Supervised Learning에서의 Linear Model을 Regression문제에 적용했었다. Regression을 배웠으니 Classification에 적용해보자. 1. Binary Classifier / Logistic Regression 2. Softmax Classifier / Multinomial Logistic Regression Classifier기술은 Regression기술에 의존해 만들어졌기 때문에 Classifier 모델이지만 Logistic Regression처럼 Regression 용어가 쓰인다. 1. Binary Classifier / Logistic Regression Regression 모델로 접근하면 공부 시간에 따른 점수를 예측할 수 있다. 위의 그림처..
Machine Learning - Unsupervised Learning
Machine Learning - Unsupervised Learning
2021.10.17Unsupervised Learning은 학습 데이터만 주어지고, 정답은 주어지지 않는 Machine Learning을 말한다. Unsupervised Learning의 여러 알고리즘에 대해 살펴보자. 1. K-means Clustering 2. Hierachical Clustering 1. K-means Clustring K개의 그룹으로 나눠 그룹화 한다. K = 3일때 Clustring 한 결과. 다른 색을 가진 세 가지 별을 찍고, 거리를 계산한 후 각각의 점들과 별의 거리를 계산해 가장 가까운 별의 색상으로 점의 색상을 바꾼다. 하지만, 이걸로는 제대로 그룹화 된 것 같지 않다. 별을 이동시키며 그룹화를 업데이트하자. 별을 이동시킬 때 위치는 같은 색상을 가진 점들의 평균 위치를 계산하고 그 위치..
Machine Learning - Supervised Learning (5)
Machine Learning - Supervised Learning (5)
2021.10.17Supervised Learning의 여러 가지 알고리즘들에 대해 살펴보자. 1. Naïve Bayesian Classifier 2. Decision Tree 3. K-Nearest Neighbors 4. Linear Models 5. Support Vector Machine (SVM) 6. Multi Layer Perceptron(MLP) 5. Support Vector Machine Vector Line을 그어서 분류한다. 어떻게 Vector Line을 그어야 가장 잘 분류할 수 있을까? 일반화의 관점에서 생각하면 답을 알 수 있다. 바로 네번째이다. 두 그룹과의 boundary가 되는 구분선의 최소를 최대로 늘리는 Vector Line을 그어야 한다. 즉, margin이 최대한이 되는 직선으로 나눈..
Machine Learning - Supervised Learning (4)
Machine Learning - Supervised Learning (4)
2021.10.17Supervised Learning의 여러 가지 알고리즘들에 대해 살펴보자. 1. Naïve Bayesian Classifier 2. Decision Tree 3. K-Nearest Neighbors 4. Linear Models 5. Support Vector Machine (SVM) 6. Multi Layer Perceptron(MLP) 4. Linear Models 선형 모델. Classification Regression (Regression을 먼저 공부하고 Classification을 공부한다.) Decision Tree 알고리즘에서는 Boundary를 나눌 때 축 상으로 (바둑판처럼) 나눌 수 밖에 없지만, 선형 모델에서는 직선으로 분류할 수 있다. y = ax +b Linear Regress..
Machine Learning - Supervised Learning (3)
Machine Learning - Supervised Learning (3)
2021.10.17Supervised Learning의 여러 가지 알고리즘들에 대해 살펴보자. 1. Naïve Bayesian Classifier 2. Decision Tree 3. K-Nearest Neighbors 4. Linear Models 5. Support Vector Machine (SVM) 6. Multi Layer Perceptron(MLP) 여러 가지 알고리즘들이 있고, 상황에 따라 다른 알고리즘을 적용해야 한다. 3. K-Nearest Neighbors (유유상종) 입력 데이터에 가장 가까운 K개의 데이터 레이블을 표결해 출력 클래스를 결정한다. 이전에 살펴본 스팸 메일 구분하기로 예시를 들면, 먼저 그래프로 스팸메일과 일반 메일들을 데이터화 한 다음 어느 한 메일이 도착했을 때 그 메일 주변에 어떤 ..
Machine Learning - Supervised Learning (2)
Machine Learning - Supervised Learning (2)
2021.10.17Supervised Learning의 여러 가지 알고리즘들에 대해 살펴보자. 1. Naïve Bayesian Classifier 2. Decision Tree 3. K-Nearest neighbor 4. Linear Models 5. Support Vector Machine (SVM) 6. Multi Layer Perceptron(MLP) Linear Model은 Neural Network와 Deep Learning의 기반이 되기 때문에 자세히 알아둬야 한다. 2. Decision Tree (Classification) 결정 트리, Tree Structure 라고도 불린다. node : 질문들 branch : 질문의 답에 대한 분기 이미지를 Decision Tree에 집어넣고, 질문을 한다. 손가락이 몇..
Machine Learning - Supervised Learning (1)
Machine Learning - Supervised Learning (1)
2021.10.17Supervised Learning의 여러 가지 알고리즘들에 대해 살펴보자. 1. Naïve Bayesian Classifier 2. Decision Tree 3. K-Nearest neighbor 4. Linear Models 5. Support Vector Machine (SVM) 6. Multi Layer Perceptron(MLP) Linear Model은 Neural Network와 Deep Learning의 기반이 되기 때문에 자세히 알아둬야 한다. 1. Naïve Bayesian Classifier (Classifier) 영화의 댓글을 보고 긍정적인 평가인지, 부정적인 평가인지 분류하는 Machine Learning을 공부해보자. 컴퓨터는 데이터로 텍스트 자체를 받아들이고 분석하는 것 보다 ..