SIRINI`s Blog

life, saying, developing, . . . and so on #10th anniversary

오늘의 공부, 텐서플로우 예제 실행!

※ 이 글은 조대협님의 블로그를 참조 하였습니다 (http://bcho.tistory.com/1154?category=555440)


작년 말에 업무가 변경 되어서 이제 회사에서는 코딩을 할 일이 거의 없게 되었는데, 운명의 장난인지 모르겠으나 약간은 생뚱맞게도(?) Deep Learning 과 관련된 업무를 맡게 되었습니다. 물론 서두에서 말씀드린대로 개발 인력으로서 코딩을 주로 하거나 하진 않는데, 그래도 이게 뭐하는 놈인지도 모른채로 일을 할 수가 없어서 새해 부터 공부를 시작하게 되었습니다.

유튜브에도 여러 훌륭한 강좌들이 많이 있었고 여타 블로그들도 좋았는데 우선 역사적인 이야기부터 개론을 잡고자 책을 한 권 읽고 시작하였습니다. (인공지능과 딥러닝, 마쓰오 유타카) 예전 같았으면 바로 예제 코드부터 투다다다~ 작성하기 바빴을텐데 이제는 코딩 한 번 하려면 꽤 많은 시간이 흘러야 합니다. ㅎㅎㅎ;;;

여튼, 겨우 프롤로그를 진행하는 와중에 드디어 오늘 처음으로 딥 러닝 관련 예제 코딩을 따라 작성해 보았습니다. TensorFlow 라는 구글의 오픈소스가 대세로 보여서 그걸 기준으로 했는데 설치는 그다지 어렵지 않았습니다. 

혹시 TensorFlow 설치를 어떻게 해야 하는지 궁금하신 분들을 위해 아래 링크를 공유 드립니다.
https://github.com/golbin/TensorFlow-Tutorials/tree/master/02%20-%20Preparation (골빈해커님 글!)
https://www.tensorflow.org/install/ (구글 TensorFlow 공식 홈페이지 안내, 영어)
윈도우 기준으로 설치 하실 때, Command 창을 실행 하실 때 꼭 관리자 권한으로 실행 하시기 바랍니다. 저는 pip3 에서 에러 메시지를 내뿜기에 살짝 흠칫했는데 (아 이젠 이런 것도 못 따라 하나 ?!) 그게 알고 보니 폴더 생성 권한 문제더라구요. ^^;;

설치를 마치고 TensorFlow 가 처음이기 때문에 역시나 여러 글들을 찾아 보면서 방황을 하다가, 서두에 밝힌대로 조대협님의 글을 참고 하면서 공부를 했습니다. 글도 잘 쓰시고 코딩도 잘 하시는 해당 블로그 운영자분께 감탄만 하면서 (이건 반칙 아닌가?!) 보았는데 아래에 순서대로 공유 드립니다. 
 - 자료형의 이해 (http://bcho.tistory.com/1150?category=555440)
 - 행렬과 텐서플로우 (http://bcho.tistory.com/1153?category=555440)
물론 이 밖에도 정말 좋은 글들이 많습니다. 오늘 이 포스트의 가장 큰 유익함은 위의 훌륭한 블로그를 소개해 드린 것입니다!

위의 글들에서 나오는 실습 코드를 착실히 따라가면서 constant, variable, placeholder 등의 개념을 대략적으로 익혔고 아직 구체적으로 잘은 모르겠지만 데이터를 수학적으로 좀 더 쉽게 구분할 수 있게 해주는 sigmoid, softmax 등의 개념을 익힐 수 있었습니다. 

아직까지는 딥 러닝이 수학적으로만 보면 행렬 연산과 동일한데 단지 그게 데이터가 월등히 많고 반복해서 처리해야 할 횟수가 무지막지하다, 정도 까지만 이해되고 있습니다. (맞나요? ㅠㅠ) 그리고 행렬 연산을 하는데 우리가 흔히 아는 1차 방정식 (y = ax + b) 꼴에서 a 와 b 를 여러 값들을 대입해 나가면서 y 출력값이 원래 의도한 정답에 얼마나 가까운지를 보고 a 와 b 를 찾아가는 것으로 생각 됩니다. 

정말 단순 무식하게 생각해보면 a 와 b 에 아무 값이나 때려 넣어서 얻어 걸리는(?) 것 처럼 y 값을 찾는 거 같은데 여기에 일반인은 생각지도 못한 여러 수학적인 개념이 버무려져서 잘 정의된 방법으로 |출력값 - 기대값|^2 을 최소화 하는 것으로 보입니다. 경사 하강법이나 이런 개념들은 서두의 블로그에서 그래프로 잘 설명해 주셔서 덕분에 개념적으로는 이해가 되는데 이걸 응용 하는 건 또 다른 문제니까요. ㅎㅎ 서두르지 말고 천천히 해봐야 겠습니다.

아래는 제가 이번에 따라 해 본 MNIST 숫자 인식하기 예제 코드 입니다. 


Tag: 딥러닝,텐서플로우,deep,learning,tensorflow,공부, Date: 2018-01-08 0 Responses

Leave a comment here!

90cc
비밀번호를 입력해 주세요
이름을 입력해 주세요