4.머신러닝 (Machine Learning)

This entry is part 4 of 7 in the series 딥러닝 이야기

머신러닝이란 무엇인지 알아봅니다. 이 과정에서 머신러닝에는 어떠한 방법들이 있는지 살펴봅니다.

1. 들어가며

지난 글에서는 컴퓨터가 이미지를 인식하는 방법을 살펴봤습니다.
컴퓨터에게 하나의 이미지는 그저 수백만 개의 픽셀값을 가진 ‘숫자들’에 불과했죠. 이는 각각의 이미지는 수백만 차원 공간에 분포하는 점임을 의미합니다.

우리는 이런 고차원 공간을 상상할 수가 없죠.
그래서 고차원의 점들을 우리가 볼 수 있는 저차원의 점들로 가져오는 방법을 살펴봤습니다. 이런 방법을 차원축소라고 했죠. 이렇게 저차원 공간상의 분포로 바꾸어보니 이제 우리 눈에도 각각의 이미지 데이터 분포가 보였습니다. 컴퓨터는 단지 이를 아주 고차원상에서 보고 있을 뿐인 거죠. 앞으로의 글에서는 이렇게 저차원 공간으로 가지고 온 강아지와 고양이 데이터를 사용하도록 하겠습니다.

이번 글에서는 머신러닝에 대해 살펴보겠습니다.
머신러닝은 앞서 살펴본 전문가 시스템과는 완전히 반대되는 발상입니다. 전문가 시스템은 사람이 직접 규칙을 찾아 컴퓨터에게 알려주자는 아이디어이죠. 반면 머신러닝은 컴퓨터에게 데이터 분포를 주고 스스로 규칙을 찾으라는 아이디어입니다. 머신러닝의 등장으로 AI의 성능은 크게 도약할 수 있었죠.

이번 글은 다음 순서로 전개됩니다.
첫 번째로 머신러닝의 콘셉트를 살펴봅니다. 전문가 시스템과 달리 어떻게 컴퓨터가 스스로 규칙을 찾아내는지 알아보겠습니다.
두 번째로 다양한 머신러닝 방법을 사용해서 강아지와 고양이를 구분해 보겠습니다. 이때 이전 글에서 살펴본 가상의 강아지와 고양이 데이터셋을 사용하겠습니다.
세 번째로 머신러닝과 전문가 시스템이 어떻게 다른지 비교해 보겠습니다.
마지막으로 지금까지 사용한 개념을 정리해 보겠습니다. 인공지능, 전문가 시스템, 머신러닝, 딥러닝 등의 개념을 얘기했는데요. 이 개념들이 서로 어떠한 관계인지 살펴봅니다.

이제부터 하나씩 자세히 살펴보겠습니다.

2. 문제 상황

지난 글에서는 차원 축소에 대해 살펴봤습니다.
컴퓨터의 사고방식인 고차원 공간상으로부터 우리의 사고방식인 저차원 공간상으로 데이터 분포를 이동시키는 방법이었죠. 우리의 강아지와 고양이 데이터에도 동일한 방법의 차원 축소를 적용해 보겠습니다. 기존의 강아지, 고양이 이미지 각각은 수백만 개의 픽셀값을 가지고 있었다고 가정해 보죠. 즉 기존 이미지 하나하나는 수백만 차원 공간상에 존재하는 점이었습니다. 이를 점들 간의 상관관계는 유지하면서 우리가 이해할 수 있는 2차원 공간상으로 옮겼다고 상상해 보겠습니다.

1.데이터를 2차원 공간의 점으로 표현하기
그림1. 데이터를 2차원 공간의 점으로 표현하기

그럼 위 그림처럼 분포할 겁니다.
이때 두 개의 차원은 각각 ‘몸무게’와 ‘털의 개수’를 의미한다고 가정할게요. 실제 데이터 분포와 완벽하게 동일하지는 않겠지만 대략 이렇게 분포할 법하지요? 강아지는 대체로 고양이보다 몸무게가 무겁습니다. 따라서 몸무게가 무거운 부분에는 대부분 강아지 데이터 점들이 분포할 겁니다. 마찬가지로 고양이보다는 강아지가 더 많은 털을 가지고 있는 경우가 많을 겁니다. 따라서 털의 개수가 많은 부분에는 대부분 강아지 데이터 점들이 분포할 겁니다.

자, 여기까지는 가정이니까 그렇다고 상상하고 받아들이겠습니다.
이제 문제는 이겁니다. 지금 보고 있는 점들은 우리가 준비한 강아지와 고양이 데이터입니다. 이 데이터를 사용해서 컴퓨터에게 강아지와 고양이를 가르쳐 주려면 어떻게 해야 할까요?

3. 해결 방법

3-1. 머신러닝 콘셉트

이번에는 머신러닝 방법으로 문제를 풀어보겠습니다.
머신러닝의 콘셉트는 이렇습니다. 먼저 크게 두 가지 종류의 데이터셋을 마련해 줄 거예요.

머신러닝 : 학습용 데이터와 시험용 데이터
그림2. 학습용 데이터와 시험용 데이터

첫 번째 데이터셋은 학습용 데이터셋입니다.
이 데이터셋에는 강아지와 고양이 데이터가 아주 많이 포함되어 있죠. 학습 데이터셋은 말 그대로 컴퓨터가 보고 학습하기 위한 데이터셋입니다. 학습을 하려면 문제를 풀어보고 답안을 맞춰봐야겠죠? 그리고 틀린 문제는 왜 틀렸는지 고민해 보고 다시 공부하는 과정을 반복하잖아요. 컴퓨터도 정확하게 우리와 동일한 방법으로 학습합니다. 따라서 학습용 데이터셋은 문제와 정답지가 모두 컴퓨터에게 제공됩니다.

두 번째 데이터셋은 시험용 데이터셋입니다.
이 데이터셋도 마찬가지로 강아지와 고양이 데이터가 포함되어 있습니다. 하지만 이 데이터셋은 컴퓨터의 학습용이 아닙니다. 말 그대로 ‘시험’ 보기 위한 용도이죠. 컴퓨터가 학습용 데이터셋으로 학습을 완료했으면 이제 얼마나 잘하는지 테스트를 해야 하잖아요. 이때 사용하기 위한 데이터셋입니다.

따라서 시험용 데이터셋은 컴퓨터가 미리 볼 수 없습니다.
시험지를 미리 보면 당연히 안 되겠죠? 어떻게 보면 당연한 얘기인데요, 시험용 데이터셋과 학습용 데이터셋의 데이터는 겹치지 않아야 합니다. 교과서의 문제가 똑같이 시험으로 나오면 너무 쉽잖아요. 마찬가지 이유로 시험용 데이터는 반드시 학습용 데이터와 겹치지 않게 구성해주어야 합니다.

요약하자면 이렇습니다.
먼저 풀고자 하는 문제의 데이터를 아주 많이 확보해 줍니다. 그리고 데이터는 학습용과 테스트용으로 나눠주죠. 컴퓨터에게는 학습용 데이터셋 문제와 정답을 주고 학습시킵니다. 학습이 완료되면 컴퓨터에게 시험용 데이터셋을 주고 문제를 풀게 하죠. 컴퓨터가 문제를 풀어서 제출하면 우리는 채점만 해줍니다. 이때의 성적이 마음에 들면 그만할 거고요. 마음에 들지 않으면 다시 학습시킬 겁니다. 이 과정을 마음에 드는 성적이 나올 때까지 반복하는 것이죠.

전문가 시스템 방식과 비교해 보면 어떤가요?우리 역할이 굉장히 쉬워지지 않았나요?
전문가 시스템 방식을 사용할 때는 우리가 직접 문제집을 들고 공부해야 했었죠. 그리고 알짜배기만 요약해서 직접 컴퓨터에게 떠먹여 줘야 했습니다. 하지만 머신러닝 방식은 완전 반대 방법이죠. 문제집을 엄청 많이 사주고 알아서 공부하라고 시키는 겁니다. 언제까지요? 시험용 문제집 한 권을 잘 풀 때 까지요. 그저 계속 공부하라고 시킨 뒤, 시험용 문제집을 잘 풀면 이제 비로소 진짜 시험을 보러 보내주는 거죠.

3-2. 머신러닝 맛보기

이렇게만 얘기하면 너무 뜬구름 잡는 얘기 같은데요. 실제 머신러닝 방법으로 강아지와 고양이를 구분해 보겠습니다.
머신러닝에는 아주 다양한 방법들이 있습니다. 그 많은 머신러닝 방법들 중 가장 대표적인 방법들을 사용해서 강아지와 고양이를 구분해 볼게요. 이를 통해 머신러닝과 전문가 시스템의 접근 방법 차이를 확실히 느낄 수 있을 겁니다.

3-2-1. 머신러닝 : k-NN (Nearest Neighbor)

먼저 k-NN이라는 머신러닝 방법을 사용해 보겠습니다.

학습 데이터 분포를 가만히 보다 보니 이런 생각이 듭니다.

kNN 방법으로 강아지랑 고양이 구분하기
그림3. kNN 방법으로 강아지랑 고양이 구분하기

시험 문제로 받은 점이 학습 데이터의 강아지랑 더 가까우면 강아지고, 고양이랑 더 가까우면 고양이지 않을까요? 그런데 딸랑 한 개 데이터만 비교하면 불합리해 보이니 5개 데이터랑 비교를 하는 거죠. 구체적으로는 이렇게 하면 되겠네요.
시험 문제로 받은 데이터 점으로부터 가장 가까운 5개의 학습 데이터 점을 찾습니다. 그리고 이렇게 찾은 5개의 점들 중 강아지가 더 많은지, 고양이가 더 많은지 확인합니다. 만약 강아지가 더 많다면 이 점은 강아지이고, 고양이가 더 많다면 고양이인 거죠. 그렇다면 위 그림에 대한 연산 과정은 이렇게 될 겁니다.

kNN 연산 결과
그림4. kNN 연산 결과

1번, 2번 점은 강아지 점들과 더 가깝게 분포하네요. 그럼 강아지라고 판단하는 거죠.
3번, 4번 점은 고양이 점들과 더 가깝게 분포하는군요. 그럼 고양이라고 판단하는 겁니다.

이렇게 규칙을 정하고 시험을 본다면 성적이 정확히 몇 점이 나올지는 모르겠습니다. 이건 그저 상상 속에서 만든 데이터셋이니까요. 하지만 충분히 일리가 있지 않나요? 학습 데이터를 기준으로 더 가까운 ‘클래스’로 해당 점을 구분하겠다는 아이디어가 말이죠.

위에서 설명한 규칙은 실제로 머신러닝 알고리즘 중 하나인 kNN(k-Nearest Neighbor) 알고리즘입니다.
학습 데이터에서 k개의 가장 근접한 (Nearest Neighbor) 점들을 기준으로 판단하는 알고리즘이라는 뜻이죠. 근접 여부를 알기 위해서는 점들 간의 거리를 계산해야 하죠. 이 과정은 전부 사칙연산으로 이루어집니다. 따라서 컴퓨터에게 이해시키는데 전혀 문제가 없죠. 아주 간단한 방법이지만 지금도 많이 활용할 정도로 실용적인 알고리즘입니다.

3-2-2. 머신러닝 : Kernel SVM (Support Vector Machine)

다음은 kernel을 사용하는 SVM 방법을 사용해 보겠습니다.

이번에는 학습 데이터 분포를 보다 보니 이런 생각이 드는 거예요. 그냥 학습 데이터의 강아지랑 고양이를 잘 구분하는 선을 그어주면 되지 않을까요? 그러고 나서 시험용 데이터셋을 풀 때는 이 선을 그대로 사용하는 거죠.

kernel SVM 방법으로 강아지랑 고양이 구분하기
그림5. kernel SVM 방법으로 강아지랑 고양이 구분하기

어떻게 생각하시나요? 일리가 있지 않나요?
위의 예시처럼 데이터셋 분포가 아주 단순한 문제에서는 일리가 있습니다. 그런데 아래와 같이 데이터셋 분포가 조금만 복잡해져도 이렇게 단순히 직선만으로는 구분되지가 않죠.

직선만으로 강아지랑 고양이 구분하기
그림6. 직선만으로 강아지랑 고양이 구분하기

그리고 우리가 현실에서 마주하는 거의 대부분의 문제는 이보다도 훨씬 복잡합니다.

그럼 이번에는 이런 생각이 듭니다.
2차원에서는 구분이 안되니, 아래 그림처럼 차원을 늘려서 3차원으로 보내주면 어떨까요?

차원 늘려주기
그림7. 차원 늘려주기

마치 이런 느낌인 거죠.
지금은 두꺼운 지점토 위에 초록색, 주황색 점을 찍은 상태인데요. 이 지점토 중앙을 엄지 손가락으로 꾹 눌러주는 겁니다.
위 그림에서의 파란색 형광펜처럼 말이죠. 그럼 2차원이던 지점토가 3차원이 되었겠죠? 엄지 손가락 위치를 잘 조절해서 눌러준다면 주황색 점의 대부분은 아래로 푹 꺼졌을 겁니다. 위 그림으로는 표현이 잘 안 되니 이렇게 볼게요.

3차원 공간에서 면으로 강아지와 고양이 구분하기
그림8. 3차원 공간에서 면으로 강아지와 고양이 구분하기

주황색 점들이 밑으로 푹 꺼지면서 이제 초록색 점과 주황색 점이 평면 하나로 잘 구분되고 있죠?

아주 요약해서 설명했지만 이런 콘셉트의 방식을 kernel SVM(Support Vector Machine)이라고 합니다.
Kernel이란 함수를 의미해요. 가우시안 함수, 다항함수 등 우리가 알고 있는 그런 함수들 말이죠.

커널 함수
그림9. 커널 함수

아까 우리가 엄지손가락으로 사용한 함수는 일종의 가우시안 함수라고 생각할 수 있겠네요. Support Vector는 경계선을 받쳐주는 (Support) 데이터 점 (Vector)를 의미합니다. 그냥 경계선에 제일 가까운 최전방에 있는 점이라고 생각하면 됩니다. 결국 Kernel Support Vector Machine은 Kernel이라는 함수를 사용해서 저차원 공간을 고차원 공간으로 변형한 뒤 데이터를 잘 구분하는 방법이라고 할 수 있습니다.

3-2-3. 머신러닝 : 인공신경망 (Artificial Neural Network)

다음은 인공신경망 방법을 사용해 보겠습니다.
이번에는 학습 데이터 분포를 보면서 이런 생각이 드는 거죠. SVM 방법이 일리가 있긴 한데요. 어렵게 공간을 고차원으로 바꿔서 직선으로 구분하지 말고 처음부터 곡선으로 구분하면 어떨까요? 이렇게 말이죠.

인공신경망으로 강아지랑 고양이 구분하기
그림10. 인공신경망으로 강아지랑 고양이 구분하기

파란색 곡선을 경계면으로 주황색 점과 초록색 점이 어느 정도 구분되는 모습인데요. 이 곡선을 아주 잘만 조정한다면 거의 모든 점들을 구분할 수 있지 않을까요? 이 경계선은 어떻게 만들까요? 직선과 곡선 함수들을 적절히 잘 조합하면 되지 않을까요?

머신러닝 : 인공신경망의 경계선 표현 방법
그림11. 인공신경망의 경계선 표현 방법

함수들의 조합은 무한가지이니 어떠한 곡선도 표현할 수 있을 겁니다.

아주 요약해서 설명했지만 이런 콘셉트를 인공신경망 (Artificial Neural Network) 방법이라고 합니다.
인공신경망은 SVM 방법과 느낌이 비슷한데요. 실제로 인공신경망은 SVM이 차지하고 있던 AI계의 패권을 뺏어온 방법입니다. 비슷한 철학을 갖고 있지만 훨씬 정교한 방법이라 일반적으로 인공신경망의 성능이 더 좋습니다. 인공신경망은 최신 AI의 주류를 차지하고 있는 방법입니다.

인공신경망에 대해서는 이후에 다시 자세히 다루도록 하겠습니다.

3-2-4. 머신러닝 : 딥러닝 (Deep Learning)

다음은 딥러닝 방법을 사용해 보겠습니다.

인공신경망의 논리를 듣다 보니 이번에는 이런 생각이 듭니다.
인공신경망의 아이디어는 일리가 있습니다. 그런데 데이터 분포가 엄청 복잡해진다면 하나의 경계선으로 모든 점들을 구분할 수 있을까요? 경계선 작업을 무리해서 한 번에 하지 말고 여러 번에 걸쳐서 하면 어떨까요? 경계선을 만들고 쭉 펴서 데이터 분포를 다시 만들어주는 작업을 반복하는 거죠.

딥러닝으로 강아지랑 고양이 구분하기
그림12. 딥러닝으로 강아지랑 고양이 구분하기

이번에는 이런 느낌입니다.
SVM에서는 두꺼운 지점토를 엄지 손가락으로 누르는 느낌을 생각해 봤는데요. 이번에는 쉽게 2차원에서만 생각해 보죠.
바닥에 있는 주황색 구슬과 초록색 구슬을 구분해 볼 겁니다. 파란색 실을 두 종류의 구슬들이 완벽하게 구분되도록 놓으면 성공하는 게임인 거죠. 한 번에 배치하기는 어렵겠죠? 그래서 적당히 구분되도록 실을 놓은 뒤 쭉 당겨서 구슬들을 재배치하는 겁니다. 이 작업을 반복할수록 구슬은 색깔별로 구분되어 분포하게 되겠죠? 그에 따라서 문제는 점점 더 쉬워질 겁니다. 최종적으로는 색깔별로 거의 완벽하게 구분할 수 있겠죠.

아주 요약해서 설명했지만 이런 콘셉트를 딥러닝 (Deep Learning)이라고 합니다.
딥러닝은 인공신경망의 일종이라고 할 수 있습니다. 다만 인공신경망의 작업을 아주 많이 반복하는 방법이죠. 위의 예시처럼 경계선을 배치하고 쭉 당겨 재배치하는 작업을 아주 많이 반복하는 겁니다.
인공신경망에서는 이렇게 경계선을 배치하고 쭉 당겨 재배치하는 작업을 ‘층 (Layer)’라고 표현합니다. 딥러닝 방법에서는 이러한 층을 아주 많이 쌓아 ‘깊은 (Deep)’ 층을 이루게 되었죠. 그래서 딥(Deep) 러닝이라는 이름이 붙게 되었습니다.
딥러닝은 현재 AI 방법들 중에서 가장 유명한 방법입니다. 최신 AI는 거의 대부분 딥러닝 방법을 사용하고 있다고 해도 과언이 아니죠.

물론 딥러닝 전에도 최신 방법들이 존재했습니다.
SVM과 전문가 시스템들처럼 말이죠. 따라서 미래에는 딥러닝도 과거의 방법들 중 하나가 될지도 모르겠습니다. 하지만 지금의 딥러닝은 아주 성능이 좋아서 현실 세계의 많은 문제를 풀어내고 있습니다. 지금의 AI 붐을 일으킨 건 딥러닝이라고 말할 수 있죠.

딥러닝은 이번 시리즈 글의 주제입니다. 이번 글의 주제는 머신러닝이므로 딥러닝에 대해서는 이후 글에서 이어서 다루겠습니다.

3-3. 전문가 시스템 vs 머신러닝

지금까지 머신러닝의 대표적인 방법들을 사용해서 상상 속의 강아지와 고양이들을 구분해 봤습니다.
머신러닝의 등장으로 기존 AI의 대세는 전문가 시스템에서 머신러닝으로 옮겨왔다고 했는데요. 머신러닝의 장점을 통해 전문가 시스템과의 차이점을 정리해 보겠습니다.

전문가 시스템 vs 머신러닝
그림13. 전문가 시스템 vs 머신러닝

머신러닝의 첫 번째 장점은 전문가가 필요 없다는 것입니다.
전문가 시스템은 문제를 풀기 위해 사람이 직접 전문가가 되어야 합니다. 문제를 풀기 위한 모든 규칙을 직접 찾아내어 코드를 짜서 컴퓨터에게 알려주어야 하죠.
반면 머신러닝은 정반대입니다. 그저 데이터를 확보해서 스스로 규칙을 찾으라고 하면 되죠.

머신러닝의 두 번째 장점은 문제가 복잡할수록 효과적이라는 것입니다.
전문가 시스템은 사람이 직접 규칙을 찾아야 하기 때문에 일정 난이도 이상의 문제는 현실적으로 풀기가 불가능합니다. 대표적으로 강아지와 고양이를 구분하는 문제죠. 우리에게는 쉬운 문제이지만 컴퓨터 입장에서는 정해야 하는 규칙이 수백만 가지가 넘어가는 아주 복잡한 문제입니다. 결국 대부분의 문제는 전문가 시스템 방식으로는 풀기 어렵다고 봐야겠죠.
하지만 머신러닝 방식은 문제가 아무리 복잡해도 해결이 가능합니다. 아주 많은 규칙도 컴퓨터가 스스로 찾아낼 수 있기 때문이죠.

머신러닝의 세 번째 장점은 문제 해결을 위한 시간이 짧다는 것입니다.
전문가 시스템은 코드를 작성하는 시간이 아주 오래 걸립니다. 직접 코드를 한 줄 한 줄 작성해야 하기 때문이죠. 게다가 규칙까지 직접 찾으면서 작성해야 하니 개발을 위해서는 아주 오랜 시간이 필요합니다.
반면 머신러닝은 코드 작성 시간이 아주 짧습니다. 기존 작성된 코드를 몇 줄만 수정하여 활용할 수도 있죠. 따라서 데이터만 확보되어 있다면 아주 빨리 개발을 완료할 수 있습니다.

3-4. 인공지능 vs 전문가 시스템 vs 머신러닝 vs 딥러닝

그동안 아주 많은 인공지능 관련 용어가 나왔는데요. 한번 정리해 보겠습니다.

14.인공지능 vs 전문가 시스템 vs 머신러닝 vs 딥러닝
그림14. 인공지능 vs 전문가 시스템 vs 머신러닝 vs 딥러닝

지금까지 우리는 컴퓨터를 사용하여 강아지와 고양이를 구분하는 방법을 찾고 있었습니다.
이러한 모든 방법을 인공지능 (AI)라고 할 수 있습니다. 인공지능이란 컴퓨터로 인간의 지능을 모방하고자 하는 모든 시도를 의미하죠. 이러한 시도는 생각보다 아주 예전부터 존재했습니다. 컴퓨터가 발명된 이후로 계속되어 왔죠.

최초로 의미 있는 수준의 AI는 전문가 시스템 방법을 사용했습니다.
전문가 시스템은 프로그래머가 직접 문제 해결을 하고 이 방법을 컴퓨터에게 입력해 주는 방식이었죠. 제약 조건이 명확하여 문제를 풀기 위한 규칙이 많지 않은 경우에는 효과적이었습니다. 전문가 시스템은 아주 오랜 기간 최고의 AI 방법이었죠.

이런 전문가 시스템의 방법에 반기를 든 방식이 머신러닝(기계학습)입니다.
머신러닝은 비교적 최근 등장하여 지금까지 최고의 방법으로 인정되고 있는 방식입니다. 전문가 시스템과는 반대로 컴퓨터가 데이터로부터 직접 규칙을 찾도록 하는 방식이죠. 머신러닝은 데이터만 충분히 확보된다면 아주 많은 문제에서 높은 성능을 낼 수 있습니다.

이러한 머신러닝에는 다양한 방법들이 존재합니다.
이중 인공신경망이라는 방법이 있는데요. 인공신경망은 머신러닝의 초창기부터 존재했던 방법입니다. 함수들을 조합하여 구불구불한 경계선을 만들어주는 방법이죠. 하지만 하나의 경계선으로는 복잡한 데이터셋을 표현할 수 없어 성능의 한계가 존재했습니다. 이런 이유로 한동안 빛을 보지 못했죠.

그러다가 최근 들어 경계선 작업을 여러 번 반복하면 성능을 크게 올릴 수 있음이 밝혀졌습니다.
이를 통해 기존 머신러닝 방법으로는 풀지 못한 문제들을 아주 많이 풀어냈죠. 경계선 작업을 아주 여러 번 반복하는 방법이므로 딥러닝이라는 이름을 붙여주었습니다. 이 딥러닝은 아직까지도 최고의 AI 방법으로 통용되고 있죠.

요약하면 이렇습니다.
인공지능은 초창기 대세였던 전문가 시스템과 현재 대세 방법인 머신러닝으로 구분됩니다. 머신러닝에는 다양한 종류의 방법이 있는데 인공신경망은 그중 하나이죠. 딥러닝은 인공신경망 방법을 조금 개선한, 사실상 같은 개념이지만 최근 크게 성공하며 새롭게 브랜딩 한 이름이라고 할 수 있습니다.

4. 마무리

지금까지 머신러닝에 대해 살펴봤습니다.
머신러닝은 데이터셋으로부터 컴퓨터가 직접 규칙을 찾는 방법입니다. 이를 위해서는 학습용 데이터와 시험용 데이터를 확보해주어야 합니다. 학습용 데이터로는 학습을 하고 시험용 데이터의 성적이 잘 나올 때까지 이 과정을 반복하죠. 머신러닝에는 다양한 방법들이 존재합니다. 대표 방법들인 kNN, SVM, 인공신경망, 딥러닝등을 사용하여 직접 강아지와 고양이를 구분해 봤습니다. 각 방법들은 서로 다른 장단점이 존재했죠. 많은 머신러닝 방법들 중 현재 가장 인기 있는 방법은 딥러닝입니다. 딥러닝은 인공신경망을 더 깊게 만든 방법이죠. 함수를 사용하여 구불구불한 경계선을 표현하는 방법입니다. 이러한 경계선을 아주 여러 번 만드는 방법을 사용하기에 ‘딥’러닝이라고 부르죠.

다음 글에서는 딥러닝을 깊게 살펴보도록 하겠습니다.

Series Navigation<< 3.컴퓨터의 이미지 인식 방법5.딥러닝 (Deep Learning) >>
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top