1-1.what is neural network
딥러닝 이라는 용어는 신경망의 트레이닝을 일컫는 말인데요, 가끔은 매우 큰 신경망을 의미하기도 합니다. 그럼 신경망이라고 하는 것은 정확히 무엇을 뜻하는 걸까요? 이번 비디오를 통해 몇가지 기본적이면서 직관적인 부분을 설명해드리도록 하겠습니다. 집값을 예측하는 툴을 예시로 살펴보도록 하겠습니다. 6개의 가구로 이루어져있는 데이터 세트가 있다고 해봅시다. 제곱 피트나 제곱티어 단위로 말이죠.
또한, 집값 또한 알고 있고 집 크기의 함수에 대입하여 미래 집값을 예측합니다. 그래서 만약 여러분이 linear regression에 익숙하시면, 여기 데이터에 일직선을 그으면
이런 선이 나올텐데요. 조금 더 멋있게 설명하자면 가격이 마이너스가 될 수는 없기 때문에 일직선이라고 표현하기보다는, 여기에 이렇게 커브로 바꾸어보도록 하겠습니다. 그러면 이 부분은 0이 되겠죠. 그렇게 해서 두꺼운 파란색 선은
미래의 집값을 예측하는, 집 크기를 변수로 하는 함수가 됩니다. 여기는 값이 0인 부분이고
그 다음 우측 부분은 일직선의 일차함수 선이 됩니다. 이렇게해서 방금 맞춰 놓은 집값 함수는 아주 간단한 신경망이란 비슷한 개념으로 생각하시면 됩니다. 가장 간단할 수 있는 신경망이라고 볼 수 있죠. 여기 한번 그려봅시다. 집의 크기를 나타내는 x값을 신경망의 입력값으로 지정하고 이 노드로 들어가는데요,
이렇게 생긴 원형 모양입니다. 이렇게 입력되어 y라는 결과 값이 나옵니다. 이 동그란 원은, 신경망에 있는
1개의 신경세포인데요, 왼쪽에 그린 이 함수를 도입시킵니다. 신경세포가 하는 것은 바로
크기를 입력값으로 갖고, 이 일차함수를 만드는 것이죠. 최대값 0을 갖고, 예상 가격을 결과값으로 추출하는 것입니다. 신경망 분야에서 이 함수를 많이 볼 수 있습니다. 특정 부분까지 0의 값을 갖고, 어느 시점 이후, 일차함수로 값이 증가하는 함수 말이죠. 이 함수는 ReLu(렐류) 함수라고 하는데요, rectified linear units의 약자입니다. R-E-L-U 이죠. 그리고, rectifiy라고 하는 것은 0을 최대값으로 한다는 뜻입니다.
그래서 이런 모양의 함수가 나오게 되는 것이죠. 일단은 ReLU 유닛과 관련해서는 크게 신경쓰실 필요는 없습니다.
나중에 다른 코스에서 다루도록 하겠습니다. 자 그럼, 이게 1개의 신경세포라고하면,
이렇게 신경망이구요, 아주 작은 신경망이죠. 더 큰 신경망은 신경세포들이 쌓아 뭉쳐져서 만들어집니. 이 신경세포를 하나의 레고블럭이라고 생각하시면 더 큰 신경망은 레고블럭을 같이 쌓으면서
만들어진다고 볼 수 있습니다. 예시를 한번 볼까요? 단순히 집의 크기로 미래의 집값을 예측하기보다는 다른 특성이 있다고 가정해보죠, 호스트에 대해 더 많은 정보를 안다고 해봅시다,
예를 들어, 방의 갯수, 여기에 s를 안 적었군요,
그리고 여러분은 가족의 크기 또한 집값에 영향을 줄 수 있다고 생각할 수 있겠죠? 이 집이 3명으로 구성된 가족에게 적합할지, 4명 가족이 살 수 있을지, 또는 5명 가족 등등 말입니다. 실질적으로 제곱피트 또는 제곱미터의
집 크기와, 방의 개수가 특정 인원의 가족이 살 수 있는지 여부를 결정짓게 됩니다. 추가로, zip code도 알 수 있죠. 다른 나라에서는 zip code를 postal code라고도 합니다. zip code (우편번호)는 미래에 도보가능 여부를
알려주는 요소일 수 있습니다. 이 지역은 걷기에 알맞은가? 장을 보러 걸어갈 수 있는가? 학교는 걸어갈 수 있는가? 운전을 해야하는가? 어떤 사람들은 걸어서 다닐 수 있는 지역을 선호할 수 있습니다. 그럼 zip code와 재산같은 경우에, 미국에선 확실히 그렇고,
다른 나라도 적용될 수 있지만 학교의 질이 얼마나 좋은지 알 수 있습니다. 제가 그리고 있는 조금한 동그라미가
ReLU가 될 수 있습니다. rectified linear units 또는 다른 비선형 함수죠. 그렇게 되면 방의 크기와 개수에 따라서, 가족의 인원수와, 도보 가능한 정도를 알려주는
우편번호와, 우편번호와 재산에 따라 학교의 질을 예측할 수 있는
부분이 있습니다. 마지막으로 사람들이 집값에 값어치를 부여하는 경우, 본인이 가장 중시하는
부분이 있을 수 있습니다. 이 사례 같은 경우엔,
가족 구성 인원 수, 도보가능한 정도,
학교의 질, 들 여러가지 집값의 영향을 줄 수 있는 요소들이 있습니다. 이번 사례에선,
모든 4가지 입력값이 모두 x입니다. 그리고 y는 예측하려고 하는 집값입니다. 그러므로, 신경세포 또는 예측해주는 요소들을 쌓으면서, 앞 슬라이드에서도 보았듯이,
조금 더 큰 신경망을 갖추었습니다. 신경망을 어떻게 관리하냐면,
이를 도입하는 경우에, x의 입력값과, y라는 결과값을 트레이닝세트에 도입시키면 됩니다. 가운데 부분은 알아서 해결됩니다. 그러므로 실질적으로 도입하는 부분은 이것입니다. 여기서는, 4개의 입력값을 가지고 있는 신경망이 있습니다. 입력값의 특성은 크기, 방 개수, zip code 또는 우편번호, 이웃집의 재산 등이
될 수 있습니다. 이런 입력 값의 특성을 바탕으로 y의 값을 예측하는 것이
신경망의 역할입니다. 이 동그라미들은
숨겨진 유닛이라고도 하는데요 이 유닛들은 각각 4가지 특성을 반영합니다. 예를 들어, 첫 번째 노드가 가족 규모를 뜻하고 이 규모는 X1과 X2에 의존한다고 이야기하기보다는, 그 대신에, 신경망이 어떤 것이던 선택할 수 있도록 합니다. 그렇게 하고나서 4가지의 특성을 제공하여
자유로운 옵션을 제공합니다. 층이라고도 하는데,
이 입력 층을 신경망 가운데에 있는 층은 밀집하게 연결되어 있습니다. 그 이유는 모든 입력 값이 모든 동그라미에 연결되어 있기 때문입니다. 신경망의 가장 놀라운 부분은 어느 정도 x와 y에 대한 정보가 있으면, x와y에 대한
충분한 트레이닝 example도 있는 경우, x에서 y를 그리는 함수를 굉장히 잘 파악합니다. 기본적인 신경망에 대한 내용을 다루어 보았는데요, 여러분이 직접 고유의 신경망을 만들어보면, 지도학습 부문에서 매우 유용하고, 강력하다는 것을 느낄 것입니다.
즉, 조금 전에 봤던 집값을 예측하는 사례처럼 x를 이용하여 y를 산출하려고 하는 경우와 같이 말입니다. 다음 비디오에서는 지도학습의 몇가지 예를 더 살펴 보겠습니다. 본인 어플에 큰 도움이 될 수 있는 네트워크 example을 다뤄보도록 하겠습니다.
1-2.supervized learning with neural networks
신경망이 요즘 선풍적인 끌고 있습니다. 잘 작동되고 있기 때문에 아마 이런 인기는 어느 정도 예상할
수 있겠죠. 그런데, 현재까지
지켜보니 신경망과 관련하여 거의 대부분의 경제적인 가치는 지도학습이라는 한 종류의 딥러닝을 통해 만들어 진 것이었습니다. 이게 무슨 뜻인지 보도록 하고,
사례도 같이 보도록 하겠습니다. 지도학습에서는 x 입력
값이 있으면, 해당 값과 연계되는 결과값 y를
배워야 합니다. 예를 들어, 방금
전 우리는 집값을 예측하는 어플을 봤는데요, 집의 특성을 입력 값으로 하여 집값을 예측하는 방법이 있습니다. 신경망이 효과적으로 적용된 다른 사례가 또 있습니다. 신경망이 효과적으로 적용된 다른 사례가 또 있습니다. 최근 가장 수익성이 좋다고도 할 수 있는 어플은 온라인 광고입니다. 의욕을
불러 일으키는 분야라고는 할 수 없겠지만 수익성이 좋은 것은 사실입니다. 웹사이트가 사람에게 표출하려고 하는 특정 정보를 입력 값으로
지정하고, 유저에 대한 정보도 함께 입력 방식으로 사람들이 광고를 클릭하는지 여부를 예측하는데 굉장히 똑똑해졌습니다. 사람들과 유저들에게 가장 볼법하거나 클릭할만한 광고를 보여주면서, 여러 기업들에게는 수익성이 매우 좋은 신경망 어플이 되었습니다. 이유인 즉 슨, 사람들이
가장 클릭할 확률이 높은 광고를 보여주는 것이 결정적으로 온라인 광고 회사에게는 매우 큰 영향을 끼치기 때문입니다. Computer Vision은 최근 몇 년간 놀라운 발전을 이루어 냈습니다. 상당부분 딥러닝에 의해서 말이죠. 이미지를 입력하고 인덱스를 결과값으로 원할 경우, 1에서 1000까지로 지정해서, 1000가지의 다른 이미지 중 하나를 선택할 수 있습니다. 이러한 여러 가지 이미지를 태깅하는데 사용할 수도 있습니다. 제가 생각하기엔 음성인식도 흥미로운 발전을 이루어내고 있습니다. 이제는 오디오 영상을 신경망 입력 값으로 하여, 텍스트를 결과값으로 나오게 할 수 있습니다. 머신 번역 분야 또한 딥러닝을 통해 크게 발전해오고 있습니다. 이제는 신경망 입력 값을 영어 문장으로 지정하여, 중국 문장이 나오도록 지정할 수 있습니다. 자율주행에서는, 이미지를
입력하면, 예를 들어 차 전방에 있는 사진이나 레이더에 확인되는 정보를 기반으로 신경망의 트레이닝을 통하여 도로에 있는 다른 차들의 위치를 파악할 수도 있을 것입니다. 이것이 바로 자율주행의 시스템의 핵심 요소가 되는 것입니다. 신경망이 똑똑하게 x,y값을
선정하는 것으로 상당한 가치가 만들어 졌습니다. 신경망이 똑똑하게 x,y값을
선정하는 것으로 상당한 가치가 만들어 졌습니다. 특정 문제에 이런 러닝 지도학습 부문을 도입시켜, 일반적으로 더 자율주행 자동차와 같은 더 큰 시스템에 적용시킨
뒤 말이죠. 살짝 다른 유형의 신경망들도 다른 어플에 유용하게 쓰이더군요. 예를 들어, 이전
영상에서 봤던 부동산 어플처럼 전 세계 공통적인 구조를 쓰죠? 아마도 부동산이나 온라인 광고 산업 같은 경우, 앞서 본 것처럼, 스탠다드한
신경망이 여서 그럴 것입니다. 이미지 어플에서는
Convolution on Neural Networks를 사용할 것입니다. CNN이라고 자주 줄여서 이야기하죠. 시퀀스 데이터는, 예를 들어, 오디오는
시간적인 요소가 있죠? 오디오는 시간에 따라 재생되기 때문에 일차원적인 타임시리즈 또는 시간적인 시퀀스에 의해 가장 자연스럽게
표현됩니다. 그러므로 시퀀스 데이터로는
RNN을 가장 많이 사용합니다. Recurrent Neural Network의 약자입니다. 언어, 영어와 중국어, 알파벳 또는 단어들은 하나씩 나열되는 특성이 있죠. 언어는 그렇기 때문에 시퀀스 데이터를 통해 가장 자연스럽게 표현됩니다. 조금 더 복잡한 버전의 RNN이
이러한 어플들에 사용됩니다. 그리고 자율주행과 같은 더욱 복잡한 어플들에는 이미지가 있기 때문에 조금 더
CNN과 같은 구조를 가지며, 레이더 정보도 있기 때문에 다르다고 할 수 있습니다. 결과적으로 커스텀 버전이나 또는 복잡한 복합의 hyrid
neural network 구조를 사용하게 될 수 있습니다. 조금 더 명확하게 스탠다드
CNN과 RNN 구조에 대해 설명 드리자면, 문학에서는 아마 이런 류의 사진들을 많이 접하셨을 것입니다. 이게 바로 스탠다드 신경망이라고 할 수 있죠. 이런 사진들도 많이 보셨을 것입니다. 이 사진은
Convolutional Neural Network의 예 입니다. 앞으로 후속 코스에서 이 사진이 무엇을 뜻하는지 그리고 어떻게 시행하는지 볼 것입니다. convolutional networks는 이미지 데이터에 자주 쓰입니다. 이러한 사진들도 아마 많이 보셨을 것입니다. 이것 또한 어떻게 시행하는지 추후 코스에서 배울 것입니다. Recurrent Neural Networks는 이렇게 시간적인 요소를 담고 있는 일차원적인 데이터를 다루는데
좋습니다. 머신러닝에 대한 어플들을 들어보셨을 텐데요 structured data와 unstructured
data가 적용된 어플 말이죠. 이게 바로 그 뜻입니다. structured data는 한마디로 데이터의 데이터베이스들입니다. 예를 들어, 집 값을
예측하는데 데이터베이스 또는 크기나 방의 개수를 알려주는 여러 칼럼이 있죠. 이런 것들이 바로
structured data입니다. 또는 유저가 광고를 클릭할지 여부에 대한 예측을 하는 데에 있어 연령과 같은 유저정보, 광고에 대한 정보, 예측하려고
하는 이유 등 이런 것들이
structured data이고 각각의 특성들이, 집의 크기나, 방의
개수, 유저 연령 등의 데이터는 명확한 뜻을 정의합니다. 반대로 unstructured
data는 오디오, raw 오디오, 이미지와 같이 이미지 또는 텍스트 내부에 있는 내용을 인식하고자 하는 데이터를 이야기합니다. 고유 특성은 이미지의 픽셀 값이나 텍스트에서 개인의 단어가 될 수 있습니다. 역사적으로, 컴퓨터가 unstructured data를 인식하는데 있어
structured data보다 더 많은 어려움이 있었습니다. 인간의 오디오를 인식하는 과정은 이미지를 인식했던 것과 같이 빠르게 진화해왔습니다. 텍스트는 조금 더 이후의 발명이었는데요, 기본적으로 인간은
unstructured data를 매우 잘 인식합니다. 그러므로 신경망의 부상이 흥미로운 것 중에 한가지는, 딥러닝과 신경망의 영향에 따라,
컴퓨터가 unstructured data를 인식하는 실력이 몇 년 전과 비교했을 때, 상당히 발달했다는 점입니다. 이러한 트렌드는 새롭고 흥미로운 어플에 기회를 제공하죠. 음성인식, 이미지
인식, 텍스트를 자연언어 처리하는 기술과 같이 2-3년 전과는 달리 많은 것들이 가능해졌습니다. 제 생각에는 인간은 자연적으로
unstructured data를 이해하려는 공감대가 있기 때문에, 신경망과 unstructured data의 성공 스토리를 미디어 매체에서 많이 접하게 될 것 같습니다. 신경망이 고양이를 인식하는 것은 그 자체로 그냥 멋지죠. 그것이 의미하는 게 어떤지 모두가 쉽게 알 수 있기 때문에 좋아할
것입니다. 그러나, 경제적 가치를
이끌어 온 상당 부분의 신경망 분야는 structured data에 관한 부분이었습니다. 더 나은 광고 시스템, 수익
추천, 그리고 많은 기업들이 정확한 예측을 할 수 있도록 돕는 막대한 양의
데이터베이스들을 프로세싱하는 능력과 같은 부분 말이죠. 많은 기업들이 정확한 예측을 할 수 있도록 돕는 막대한 양의
데이터베이스들을 프로세싱하는 능력과 같은 부분 말이죠. 그러므로 이번 코스에서 다루는 기술들은 structured data와 unstructured
data 2가지 데이터에 모두 적용되겠습니다. 알고리즘을 설명하기 위한 목적으로, unstructured data를 이용한 사례를 조금 더 많이 다루도록 하겠습니다. 각 팀 별로 신경망의 적용사례를 생각해보면서 structured와 unstructured
data의 적용사례를 모두 찾으시기 바랍니다. 신경망은 지도학습에 큰 변화를 가져다 주었는데요 동시에 막대한 경제적 가치도 생겨났습니다. 그러나 신경망의 기본적인 기술적 발상은 사실 수십 년 전부터 존재했습니다. 그런데 도대체 왜 바로 상용화되지 않거나 완벽히 작동되지 않는 것일까요? 다음 비디오에서는 왜 최근에서야 신경망이 우리가 사용할 수 있는 강력한 툴이 되었는지 다루어 보도록 하겠습니다.
'C Lang > deep learning' 카테고리의 다른 글
2-15.broadcasting, some tips (0) | 2018.11.15 |
---|---|
3-1.vectorization, 3-2.vectorizing logistic regression (0) | 2018.11.14 |
2-8.logistic regression gradient descent (0) | 2018.11.13 |
2-4 Gradient Descent, 2-7.computation graph (0) | 2018.11.13 |
2-1.Neural networks and deep learning,2-2.logistic regression,1-3.Logistic Regression Cost Function (0) | 2018.11.12 |