인공지능/인공지능 기초(9)
-
[인공지능 기초] 9. RNN
Traditional Neural Network나 CNN은 Sequence Data에 대해서 좋은 성능을 내지 못하였다. 이러한 데이터들은 시간이나 순서에 중요한 정보를 가지고 있기 때문에 이러한 특성을 같이 포함시킬 수 있는 네트워크가 필요하였다. 그리고 그것이 바로 RNN이다. 1. RNN RNN은 시간이나 순서에 따른 처리를 해주기 위하여 등장하였다. 기본적으로 ANN의 형태를 가지지만, 이전 state 값 $s_{i-1}$가 현재 state 값 $s_i$를 계산할 때 사용된다는 점이 다르다. 각 state는 이전 정보를 함축하고 있고, 따라서 제일 마지막 $s_n$은 모든 정보를 포함하게 된다. $$ h_t = f_W(h_{t-1}, x_t)$$ 1.1 RNN Cell 기본적으로 RNN Cell은..
2022.02.19 -
[인공지능 기초] 8. Convolutional Neural Networks(CNN)
기존 Deep Neural Network의 문제점 왜 이전의 DNN을 사용하지 않고 굳이 CNN이라는 새로운 개념을 만들어냈을까? 어떤 문제가 있는지 살펴보자. 고차원 input 데이터 먼저 input 이미지가 매우 고차원이다. 사람이 불편하지 않게 볼 수 있는 사이즈가 대략 256x256인데 color이미지면 차원만 256x256x3=196608이된다. 여기다 hidden layer를 추가하면 어떻게 될까? layer가 늘어날 때마다 parameter의 수가 기하급수적으로 늘어날 것이다. 이러한 문제로 인해 엄청난 계산량을 필요로 하고, 모델의 complexity도 높아져 overfitting이 일어날 수 있게 된다. Flexibility of Topology DNN은 1차원 벡터만을 사용할 수 있기 ..
2022.02.06 -
[인공지능 기초] 7. SVM(Support Vector Machine)
이번에는 분류기(classifier)로 매우 유명한 Support Vector Machine에 대해서 알아보겠다. CNN이전에 가장 많이 쓰였던 classifier이고, 지금까지도 사용되고 연구도 진행되고 있는 방식이다. SVM은 Maximum Margin Classifier라고도 불린다. 말 그대로 margin을 최대화시키도록 학습이 되기 때문이다. SVM은 데이터를 비선형 매핑을 통해서 고차원으로 변환하는 과정을 거친다. 이 새로운 차원에서 데이터들을 잘 분리하는 선형 boundary(decision boundary)를 찾는 것이 SVM의 목적이다. 1. 왜 고차원으로 변환해야 할까? 간단한 예제를 한번 보자. 개념은 MLP와 비슷하다. 2차원에서 A=[a, d], B=[b, c]는 non-linea..
2021.10.10 -
[인공지능 기초] 6. ANN(Artificial Neural Network)
지난 번에 Perceptron을 배우고, 그 한계점을 알아보았다. 단층 퍼셉트론은 표현력에 있어서 선형으로 분류가 힘든 문제를 풀지 못하는 한계가 있었다. 끝! 인공지능 bye~ 가 아니고!! ㅎㅎ..한 층이 안된다면 여러 층을 쌓으면 되지 않을까? 종이 하나로는 맞아도 안 아프지만 백과사전으로 맞으면 아픈 것처럼 말이다! 1. MLP(Multi Layer Perceptron) 그게 바로 Multi Layer Perceptron이다. 말 그대로 layer를 1개가 아닌 여러 개를 쌓음으로써 비선형적인 공간으로 문제를 매핑시키는 것이다. 예전 수업 중에 더 직관적인 설명이 있었는데, 레이어의 수가 증가할 수록 기준선이 증가(분류를 하는 잣대의 개수)하고, 유닛의 수가 증가할 수록 그 안에서의 디테일이 더해..
2021.10.10 -
[인공지능 기초] 5. 퍼셉트론
인공지능이란 어디서부터 시작된 것일까? 한번 상상해보자! 사람같이 사고를 하는 기계를 만드려면 제일 먼저 떠오르는 부분은 무엇인가? 눈, 코, 입? 장기? 대부분의 사람들은 그것이 "뇌"라는 것을 바로 알아차릴 것이다. 이렇듯 초기 인공지능 붐을 불러왔던 학자들도 이 "뇌"와 "기계"를 연관지으려고 노력했고, 그 과정에서 최초의 인공지능 "퍼셉트론"이 등장하였다. 1. 퍼셉트론(Perceptron) 퍼셉트론이란, 인공 신경망의 초기 형태로 다수의 입력(X)으로부터 하나 또는 여러 신호(Y)를 출력하는 알고리즘이다. 이 개념은 인간의 뇌가 정보처리 하는 과정을 모방하여 만들어졌다. 퍼셉트론은 입력 노드(X)에서 출력 노드(Y)로 보내질 때, 각 입력도느 값들($x_1, x_2, \dots, x_n$ in ..
2021.07.06