-
안녕하세요 Siraj입니다
딥러닝 시작하기에 오신 것을 환영합니다
-
이 첫 번째 에피소드에서는
-
동물들의 뇌의 무게만 가지고
몸무게를 예측해 볼 것입니다
-
이 강의는 4개월정도 걸리고
제 채널에 게시됩니다
-
수요일 태평양 표준시 오전 10시마다
라이브 세션을 가질 것이고
-
매주 깊게 주제에 대해 설명해 볼게요
-
그리고 Udacity와 협력하고 있습니다
이 과정을 성공적으로 마친다면
-
Nanodegree가 주어집니다
-
이 코스는 강력한 신경망을 활용하고
-
딥러닝 엔지니어가 되는 방법을
배우려는 사람들을 위한 과정입니다
-
경력이 있는 개발자이거나
수학자일 필요가 없습니다
-
유일한 조건은 양자역학에 대한 지식입니다
-
농담이고 파이썬의 기초만 알면 됩니다
-
우리는 인공지능을 구축함으로써
우리가 필요로 하는걸 배울 겁니다
-
테슬라 주가를 예측하는 AI부터
-
초현실주의 명화를 그려내는 것까지요
-
전통적으로, 프로그래밍은
매 과정을 정의하며 결과에 도달합니다
-
전통적으로, 프로그래밍은
매 과정을 정의하며 결과에 도달합니다
-
머신러닝은 정 반대입니다
-
머신러닝은 결과를 정의하고
-
프로그램이 결과로 갈 수 있는
과정을 찾아냅니다
-
만약 캘리포니아의 번호판을
인식할 수 있는 앱을 만들고 싶다면
-
수백 개에 이르는 번호판의 모양을
인식시키는 것부터 시작합니다
-
번호판의 글자나 모양, 색깔
상태같은 것을요
-
그리고 캘리포니아 번호판
샘플을 넣고
-
결과를 도출하는 데 필요한 과정을
알아서 배우리고 하는 것이죠
-
혹은 슈퍼 마리오를 깰 수 있는 봇을 원한다면
-
점프같은 모든 가능한 시나리오의
코드를 작성하는것 대신
-
우리는 계속 달리면서 죽지 않고
골인 지점에 도달하는 것을 목표로 주고
-
봇은 거기에 도착하는 단계를 배우게 됩니다
-
때로 우리는 어떤 단계가 왜 가능한지
전혀 이해할 수 없을 수도 있습니다
-
예를 들어 우리가 은행이라면
어떤 종류의 금융사기가 벌어지는 것으로 의심되지만
-
그걸 어떻게 탐지할지
무엇을 찾아야 할지 모른다고 할 때
-
모든 사용자의 행동에 대한
로그를 살펴보면서
-
나머지와 다른
비정상 사용자를 찾고
-
스스로 이상현상을
탐지하는 단계를 배우게 되는 것입니다
-
머신러닝은 인터넷에 널려 있습니다
-
모든 유명 서비스는 머신러닝을 사용합니다
-
사실 유튜브도 지금 여러분이 이 동영상을 볼 때
-
머신러닝을 사용해 추천 동영상을 찾고 있죠
-
그리고 사용은 시간이 지남에 따라 증가할 것입니다
-
인공지능은 인터넷에 연결 가능한
모든 장치에 탑재될 것입니다
-
모든 냉장고, 자동차, 개인 비서까지요
-
다시 배우고 우리의 필요에 따라 적응할 겁니다
-
어떤 기술같은 것을 완전히 익히려면
1만 시간이 필요하다는 법칙 아시죠?
-
그 1만 시간의 학습을
기계가 대신 해줄 수 있고
-
그것은 바로 우리에게 초능력을 줄 것입니다
-
누구나 교향곡을 작곡할 수 있게 될 것입니다
-
알렉사, 나 우울해
-
이 감정을 피아노로 연주해줘
-
이 감정을 피아노로 연주해줘
-
비트를 추가해줘
-
모든 사람이 영화를 만들 수 있을 것입니다
-
좋아, 휴고. 스타 워즈를 다시 만들고
거기에 나를 넣어
-
난 내 코드에 도커를 쓰지
-
당신은 내 마음을 아프게해요
-
당연하지
-
머신러닝과 함께라면
상상이 현실이 됩니다
-
그리고 이 영역은 현재
연구자들끼리 서로 도와가며
-
매우 빠르게 발전하고 있고
-
내 신경망은 망했네
-
더 깊게 만들어봐
-
와우, 완벽해
-
머신러닝의 모델은 굉장히 많이 있습니다
-
그 중 하나는 신경망이라고 합니다
-
신경망을 사용하는 경우
단지 한 두 개의 레이어만을 사용하지 않고
-
많고 깊게 만들어 예측하게 한다면
이것을 딥러닝이라고 부릅니다
-
딥러닝은 머신러닝의 한 종류이고
그 성능은
-
거의 대부분의 다른 모델들보다 뛰어납니다
아주 다양한 작업들 수행 시 말이죠
-
우리는 다음 에피소드부터
딥러닝에 뛰어들 것이지만
-
이 동영상은 일반적인 머신러닝에
초점을 맞출 것입니다
-
우리는 일반적으로
머신러닝을 세 종류로 구분합니다
-
첫 번째는 지도 학습입니다
-
모델에 레이블된 데이터셋을 주는 것인데요
'자동차 사진 데이터셋' 처럼요
-
어떤 것이 맞고 어떤 것이 아닌지
그 모델은 피드백을 받으며
-
레이블과 데이터 사이 간의
맵핑 관계를 학습하면
-
주어진 문제를 해결할 수 있습니다
자동차의 종류를 구분하는 일 같은 거요
-
그것은 상대적으로 직관적이고
-
우리는 이미 놀라운 결과를 얻었습니다
-
두 번째는 비지도 학습이죠
-
모델에 레이블이 없는
데이터셋을 입력하면
-
레이블이 없으니 모델은
맞는지 틀린지 피드백을 얻지 못합니다
-
자기 스스로 학습해야하며
-
주어진 문제를 해결하기 위해
데이터의 구조가 어떤지 파악해야합니다
-
이것은 더 어렵지만 더 편리한데
-
모두가 완벽히 레이블된 데이터셋을
가지고 있지는 않으니까요
-
대부분의 데이터들에는 레이블이 없습니다
-
거의 다 지저분하고 복잡하죠
-
세 번째 유형은 강화 학습입니다
-
이 모델은 피드백이 곧바로 제공되지는 않고
-
목표를 달성 할 경우에만
피드백을 받습니다
-
사람과 체스를 두어 이길 수 있는
강화 학습 봇을 만든다면
-
이 봇은 게임에 이겼을 때만
피드백을 받을 것입니다
-
지도 학습이었다면 매 수를 둘 때마다
피드백을 받았을 것이고
-
비지도 학습이었다면
이기든 지든 피드백을 받지 못할 겁니다
-
다른 두 개의 학습과는 달리
강화 학습은
-
시행 착오를 통해 환경과
상호작용한다는 개념을 이용합니다
-
이제 각기 다른 동물들의
무게를 측정한 데이터셋을 가지고
-
뇌의 무게로 몸무게를 예측해보려 합니다
-
데이터에 레이블이 때문에
지도 학습을 이용할 것이며
-
이런 형태의 머신러닝 태스크는
회귀라고 불리는 작업을 수행합니다
-
이걸 하기 위해 10줄의
파이썬 코드를 작성할 겁니다
-
같이 하면서 알아보죠
-
3개의 라이브러리들을 가져오며 시작할께요
-
첫 번째는 pandas입니다
데이터셋을 읽을 수 있게 됩니다
-
두 번째는 scikit
여기서 사용할 머신러닝 라이브러리입니다
-
두 번째는 scikit
여기서 사용할 머신러닝 라이브러리입니다
-
그리고 세 번째는 matplotlib입니다
모델과 데이터를 시각화 할 수 있게 해 줍니다
-
이제 필요한 라이브러리들을 가져왔고
-
pandas를 이용하여
데이터셋을 읽어보겠습니다
-
read_fwf 함수를 사용해
동물 데이터셋을 읽어옵니다
-
고정길이로 규격화된 데이터셋 테이블을
pandas data frame 객체에 넣습니다
-
이는 행과 열로 구성된
2차원 데이터 구조입니다
-
우리의 데이터셋에는 여러 동물들의
뇌와 몸무게의 평균값이 들어있습니다
-
dataframe에 데이터를 넣기만 하면
쉽게 파싱할 수 있고
-
두 가지 측정값들을 두 변수로
쉽게 읽어올 수 있습니다
-
뇌 무게 측정값을 x_values에 저장하고
-
몸무게 측정값을 y_values에 저장합니다
-
지금 데이터를 일반적인 2D 그래프로 그린다면
-
이렇게 보일 것입니다
-
그리고 우리의 목표는
새로운 동물의 뇌무게가 주어졌을 때
-
그 몸무게를 예측하는 것입니다
-
어떻게 그걸 할 건가요?
-
그래, 어 - 허
-
그게 뭔지 알잖아요
-
독립과 종속
독립과 종속
-
내 데이터엔 값이 있어
뇌무게와 몸무게
-
난 궁금해 이 두 개를
어떻게 연관 짓나
-
선형 회귀로 관계를 찾지
-
선형 회귀로 관계를 찾지
-
측정해서 제일 잘 맞는 직선을 만들어
-
방정식 y = mx + b가 내게 필요한 전부
-
B는 y 편향 , m은 기울기
-
이 그래프와 함께 뇌무게를
이용해 몸무게를 예측해보자
-
꽁지 머리, 팝 샴페인
-
모델 초기화를 위해
-
linear_model의 LinearRegression을 불러
body_reg에 저장합니다
-
그 다음 x, y 쌍에
모델을 피팅시킵니다
-
가장 좋은 라인을 얻기 위해
x, y를 scatter plot에 피팅시킵니다
-
다음으로 회귀선을 그리는데
모든 x 값에 대해
-
연계된 y값을 예측하여 그리며
이들 점을 지나가는 선도 그려줍니다
-
show 함수를 이용하여
화면에 표시할 수 있습니다
-
터미널에서 컴파일해 봅시다
-
우리의 데이터에 맞는
그래프가 출력될 겁니다
-
X 축은 뇌무게를 나타내고
Y 축은 몸무게입니다
-
회귀 라인이 대부분 데이터와 잘 맞는 것
같아 보입니다
-
뇌무게와 몸무게 간에
매우 강한 상관 관계가 있는 것 같습니다
-
선을 따라 이동하는 방식으로
-
어떤 뇌무게가 입력되더라도
그에 맞는 몸무게를 예측할 수 있습니다
-
기존에는 결과를 위해
여러 단계들을 정의해주어야 했지만
-
머신러닝에서는
결과물을 정의만 하면
-
프로그램이 이를 위한 각 단계들을
알아서 학습합니다
-
세 가지 다른 학습이 있습니다
지도 학습, 비지도 학습 그리고 강화 학습입니다
-
그리고 선형 회귀 모델은
-
독립변수와 종속변수의 관계를 이용하여
-
최적의 라인을 만들어주며
이를 이용해 결과값을 예측할 수 있습니다.
-
지난 주의 코딩 챌린지의 승자는
Mick Van Hulst입니다
-
그는 게임을 수정해서
더 복잡하게 만들었습니다
-
그리고 그의 "Q learning" 학습 봇은
제가 만든 데모 봇 보다 훨씬 더 효율적이었습니다
-
그래서 이번 주의 마법사입니다
-
그리고 2등은 Vishal Batchu입니다
-
그는 셀룰러 오토마타를
사용하여 맵을 생성했습니다
-
이 비디오의 과제는 scikit을 이용하여
회귀 직선을 그리는 법을 배우는 것입니다
-
다른 데이터셋을 제공해 드릴 것이고
-
예측과 실제 값 사이의 오류를 출력하세요
-
자세한 사항은 README 파일에 게시되어 있습니다
여러분의 GitHub 링크를 코멘트로 남겨주시면
-
일주일 이내에 승자를 발표하겠습니다
-
구독버튼을 눌러 주시고요
-
저는 배우러 가야 해서요
시청해 주셔서 감사합니다