반응형
SMALL

Computer Science/기계학습 (Machine Learning) 19

[기계학습/ML] Deep Neural Networks

Deep Neural networks (DNN) Neural Network에 Deep을 붙인 이유는 hidden layer의 수를 많이 두었기 때문이다. hidden layer를 많이 둬 더 많은 최적화 업데이트 대상이 되는 파라미터를 두고 더 복잡한 형태로 input과의 관계를 모델링하는 것이 목적이다. 따라서 깊은 네트워크의 구조를 가져서 DNN이라고 부르며 DNN 기반의 어떤 ML 작업을 Deep Learning라고 한다. Architecture design 여러 개의 hidden layer를 두는 이유는 capacity를 높이기 위함이다. 즉, input과 output의 관계를 잘 나타낼 수 있다. Universal approximation theorem은 하나의 hidden layer와 여러 개..

[기계학습/ML] Neural Network

Neural networks (NN) Neuron은 우리 몸의 신경 전달 물질이다. NN은 이러한 뉴런을 모방하여 입력이 들어왔을 때, 입력이 각각의 뉴런을 통과하는데 통과하면서 어떤 weight를 곱하게 되고, 곱한 값이 일정 값(threshold) 이상인 경우 node가 activate되어 다음으로 값을 전달하고 작은 값은 무시한다. Classification problem 이진분류 문제를 통해 예를 들어보자. 위 사진과 같이 어떤 선을 기준으로 두 개의 클래스를 분류할 수 있으면 linear seperate를 가진다고 한다. 따라서 이러한 어떤 linear 함수를 통해 두 클래스가 쉽게 분리되는 문제에 대해 함수를 어떻게 둘 것인지에 대한 고민을 할 수 있다. 함수를 g라고 하면 이 g는 x1과 x..

[기계학습/ML] Ensemble Method

Bias-variance dilemma 어떤 하나의 문제를 풀이할 때 여러 가지 모델을 사용할 수 있다. 여러 가지 모델을 사용할 때 기본적으로 트레이닝 데이터를 핸덤하게 추출하여, 각 모델을 학습시킬 수 있다. 즉, 1,000개의 데이터에서 랜덤하게 300개의 데이터를 추출하여 하나의 모델을 만들고, 또 랜덤하게 300개의 데이터를 추출하여 두 번째 모델을 만드는 랜덤한 샘플링을 해주면 작은 데이터를 보지만 더 많은 모델을 만들어 줄 수 있다. 어떤 데이터가 선택되느냐에 따라 다른 모델이 학습이 되는데, 이러한 관점으로 deterministic한(결정적인) 알고리즘이 아니라, Stochastic한(확률적인) 알고리즘의 형태를 띨 수 있다. - Bias 실제값과 예상값의 차이로 아래의 식으로 나타낼 수 ..

[기계학습/ML] Decision Tree

Decision Tree introduction Decision Tree는 나무 결정 트리, 또는 DT라고 한다. 어떤 결정 분류 문제에서 분류에 대한 결정을 내리기 위해 나무 모양에서 계속해서 분기를 진행한다. 가장 쉽게 분류를 할 수 있는 방법은 if문이다. 일반적인 프로그램에서는 if문의 조건을 프로그래머가 설정해주지만, DT는 데이터에 대한 feature를 계산하며 조건을 학습한다. 프로그램과 DT의 차이점은 위와 같다. 하지만 기본적으로는 IF-THEN 규칙을 적용한다고 생각하면 된다. DT의 특징 - Recursive partitioning 위 사진과 같이 반복적으로 partitioning을 수행한다. 각 feature에 대해 조건을 설정하고 해당 조건을 충족하면 x1, 충족하지 않으면 x2라..

[기계학습/ML] Bayesian Classifier

Intorduction Example: Salmon-Sea Bass Problem Bayesian Classifier에 대해 학습하기에 앞서 하나의 예를 먼저 들어보자. 우리는 연어와 베스를 구별하는 일을 할 때 두 가지의 선택지가 있다. 첫 번째는 사람이 구별하는 것이고, 두 번째는 자동화 시스템이다. 그렇다면 우리는 어떤 것을 선택할 것인가? 당연히 자동화 시스템을 통해 분류하는 것이 이득이므로 후자를 고를 것이다. 따라서, 전문가만이 할 수 있던 일을 알고리즘이 해결함으로써 이점이 높다. 이때 ML이 아닌 자동화 시스템을 사용한다면 if문(전통적)을 통해 분류를 진행할 수 있다. 하지만 ML을 통해 성능을 높여보자. 컨베이어 벨트에 연어로 베스를 통과시키면 우리는 카메라로부터 길이나, 밝기, 너비 ..

[기계학습/ML] Introduction to ML

Machine Intelligence Early AI 사람에겐 어렵지만, 컴퓨터에게 쉽다. 예로 수학적인 규칙이나, search가 있다 Modern AI 사람에게는 쉽지만 형식적으로 표현하기 어렵다.(컴퓨터에 가르치기 어려움) 직관적인 정보와 비공식적인 지식이 있다는 특징이 있다. 예로 사람의 말을 이해하는 것이나, 손으로 쓴 숫자를 인식하는 것이 있다. Machine Learning ML의 분류는 다음과 같다. Task T를 수행하는 능력을 Performance P로 측정할 때, Expression E로 T의 P가 향상되는 것을 ML이라고 한다. (1997, Mitchell) 이때, 엑셀로 한 계산이나 E로 P가 향상되지 않는 경우거나, If문을 통한 분류는 ML이 아니라고 할 수 있다. 위 사진과 같..

[머신러닝/ML] ConvNet

ConvNet 우리가 지금껏 학습한 network는 forward network 또는 fully network라고도 한다. 또, 입력이 여러 개인 경우 하나로 합치고 하나의 출력으로 만들어 낼 수 있는데 이는 Convolutional Neural Network의 기본적인 아이디어이다. Convolutional Neural Network의 기본 아이디어는 고양이 실험으로부터 왔다. 고양이에게 어떠한 그림을 보여주었을 때 그림의 일부를 보고 뉴런의 일부만 반응한다는 사실을 깨닫게 되었다. 이는 입력을 일부만 받아오게 된다는 의미로 받아들이고 이러한 아이디어를 발전해 나가게 된다. 입력으로 들어온 왼쪽의 이미지를 작게 조각내고 각 조각을 입력으로 넣는다. 이때 작은 조각들은 convolution layer라고..

[머신러닝/ML] Dropout과 Ensemble, 네트워크 쌓기

Dropout과 Ensemble 이전에 우리는 Overfitting라는 것을 학습하였다. overfitting이란 학습 데이터에 대해 100%의 정확도를 내어 오히려 test data set에 대해 낮은 정확도를 보이는 경우를 말한다. 우리는 이러한 overfitting 문제를 해결하기 위해 regularization이라는 것을 학습하였다. 이해하기 쉽기 이야기 하자면, 꼬불꼬불하고 복잡하게 그어진 그래프를 일부 weight를 없앰으로써 평탄하게 만들어주는 것이다. 더 자세한 내용은 아래의 링크를 참고하기 바란다. https://coding-saving-012.tistory.com/90 [ML/머신러닝] Learning Rate, Data Preprocessing, Overfiting Learning R..

[머신러닝/ML] ReLU와 Weight 초기화

ReLU 딥러닝은 여러 개의 레이어를 통해 학습이 진행된다. 이때 입력을 받는 레이어는 input layer, 출력을 만들어내는 레이어는 output layer라고 한다. 그렇다면 레이어의 개수가 많을 때, input layer와 output layer를 연결해 주는 중간 레이어가 존재할 것이다. 우리는 이러한 중간 레이어를 hidden layer라고 한다. 하지만 레이어의 개수가 늘어나도 cost나 accuracy는 거의 그대로이다. 이는 backpropagation을 통해 적은 개수의 레이어를 사용할 때에는 weight값이나 bias값을 잘 찾아냈다. 하지만 레이어의 개수가 많아진 경우(9개 이상) 적절한 weight, bias값을 찾지 못한다. hidden layer의 노드를 거칠 때 우리는 wei..

[머신러닝/ML] XOR연산 딥러닝으로 풀기

앞서 XOR operation은 단일 레이어로 정답을 유추하기에 어려움이 있다고 언급하였다. 따라서 다중레이어 즉, multilayer를 사용해야 하는데 레이어가 증가할 수록 새롭게 정의해야 하는 weight값과 bias값이 증가한다는 문제점도 있다고 언급하였다. XOR 연산 풀어보기 3개의 unit의 weight와 bias를 임의로 설정하여 XOR연산을 풀이해보겠다. x1, x2의 입력을 넣어 각 y1, y2의 결과를 도출하고 y1, y2의 입력을 넣어 ȳ의 결과를 도출하게 한다. 이때, ȳ가 XOR연산의 결과가 되는 것이다. 각 레이어는 아래와 같이 계산한다. 이때 각 값을 구하는 S함수는 sigmoid함수로 앞서 언급하였다. 단순히 음수면 0의 값을, 양수면 1의 값을 도출한다고 생각해도 좋다. 첫..

반응형
LIST