머신러닝이 놀라운 기술이라는 것은 알겠죠?
그런데 아무리 놀라운 기술이라도
그것을 이용하지 않으면 그냥 신기한 것에 불과할 것입니다.
이제부터 우리는 학습자가 아니라
공학자가 되어봅시다.
신기한 것에 만족하지 말고
유용한 것에 도전해봅시다.
우선, 머신러닝을 통해서
할 수 있는 수많은 일 중 하나를 해보겠습니다.
머신러닝으로 할 수 있는 사례를 체험해 보고 나면
여러분들도 머신러닝으로 할 수 있는 일들을
상상하기 시작할 것입니다.
우리가 꿈꾸는 것을 먼저 생각해봅시다.
손톱을 깨물면 화면에
‘그 손 당장 내려놔’라는 메시지가 표시되고,
큰 소리로 외치는 앱을 만들고 싶습니다.
손톱을 깨물지 않으면
칭찬하는 메시지가 화면에 표시되면 더 좋겠군요.
이런 앱을 만들려면 어떻게 해야 할까요?
여러분의 막막함을 덜어드리기 위해서
머신러닝1 제작팀에서
머신러닝머신이라는 것을 만들었습니다.
http://ml-app.yah.ac/ 에 방문해보세요.
이 서비스는 Teachable Machine에서
생성한 모델을 이용해서
애플리케이션을 만들어주는 서비스입니다.
Teachable Machine에서 다운로드한 모델 파일을
이 서비스로 업로드 해보겠습니다.
모델 파일(model.json, weights.bin, metadata.json)을
모두 선택한 후에 화면으로 마우스 포인터를 끌어옵니다.
마우스 버튼을 놓으면 이 파일들이 업로드 됩니다.
업로드가 끝나면 아래와 같이
손톱과 정상이라는 블록이 화면에 표시됩니다.
진도를 나가기 전에 5분 간 이 화면을 관찰해보세요.
손 동작에 따라서 %의 값이 달라집니다.
머신러닝을 이용하면 손톱을 깨물고 있는지 여부를
간단한 숫자로 표현할 수 있게 됩니다.
숫자로 표현할 수 있게 되면 비교가 가능해집니다.
비교를 할 수 있으면 선택이 수월해집니다.
손톱과 정상에 표시되는 숫자를 잘 관찰해보세요.
위의 그림에 따르면 현재 손톱을 깨물고 있을 확률이95%,
그렇지 않을 확률이 5%라는 것을 알 수 있습니다.
두 개의 확률을 더하면 100%가 됩니다.
우리가 학습시킨 컴퓨터는
손톱을 깨물고 있지 않을 확률을 더 높이 보고 있네요.
이제 해야 할 일은 무엇인가요?
컴퓨터에게 이렇게 시켜야 합니다.
“컴퓨터야!
손톱을 깨물고 있을 확률이 80% 이상일 때
‘손톱'이라고 화면에 표시하고, 소리쳐!"
“컴퓨터야!
손톱을 깨물고 있지 않을 확률이 20% 이상일 때
‘잘 했어요~’라고 화면에 표시해!”
손톱을 깨물고 있는 것이 확실할 때
경고를 하기 위해서 80%를 사용하기로 했습니다.
경고를 너무 자주하면 성가시게 느껴질 수 있거든요.
우선 아래와 같이 손톱 쪽의 빈칸에 80이라고 적고,
정상 쪽의 빈칸에는 20이라고 적습니다.
그리고 손톱 블록의 홈 안에 쓰기 블록을 끼워 넣습니다.
블록 안에는 ‘손톱'이라는 메시지를 적습니다.
이렇게 하면 손톱을 깨물고 있을 확률이 80% 이상일 때,
‘손톱’이라는 글씨가 화면에 표시됩니다.
“손톱”이라는 목소리도 나오면 좋겠네요.
그럼 아래처럼 말하기 블록을 홈에 끼워 넣고,
‘손톱'이라고 적어주면 컴퓨터가 소리를 내줍니다.
사용 중인 브라우저가 오래된 것이라면
동작하지 않을 수 있습니다.
최신 브라우저로 바꿔보세요.
정상일 때도 동작하게 하고 싶다면,
아래와 같이 정상 블록에 필요한 블록을 끼워 넣습니다.
이렇게 하면 확률에 따라서
컴퓨터가 해야 할 일을 결정할 수 있습니다.
와 우 ! ! !
놀랍죠?
놀라워야 합니다!
놀랍지 않다면 자기 손해입니다.
두 번 놀라워하세요.
계속 놀라워하세요.
우리는 손톱을 깨물었는지를 판단해주는 모델을
응용해서 습관을 교정하는
애플리케이션(앱) 또는 프로그램이라는 것을 만든 것입니다.
이제 여러분도 프로그래머입니다.