요즘 포공에서 머신러닝 수업을 듣고 있다. 과목별로 1주씩.. 비율이 1주일에 이론/실습/자유실습 이라 실상 이론은 16시간 뿐이다.
훌륭하신 교수님들과 조교님들께 배우고 있고 많은 것을 알아가고 있지만, 1 아쉬운 게 있다. 너무 이론에만 치우쳐있다는 것 ㅠㅠ 교육 과정 막판에 1-2주정도로 빡세게 하도록 개인 or 팀플 같은걸 추가했다면 좋지 않았을까 하는 생각이 든다.
여기엔 전문가들께서 많이 계시니까, 실전에서 플젝하며 부딪혀보고 많은걸 물어볼 수 있었을텐데 ㅠㅠ 좀 아쉽다.
물론 이론을 탄탄하게 다져놔야 하는게 맞고, 기존엔 그냥 라이브러리만 사용하는 단계였다면, 이번 교육을 통해서 각 알고리즘 수식들이 어떻게 도출되었는지, 또 어떤 다른 알고리즘과 결합된 것 인지 등 본질적인 이해를 깊게 하게 되어 좋았다.
실습시간도 있어서 어떻게 쓰면 되겠구나. 그리고 직접 구현 해보는것과 scikit learn이나 tensor에 있는 거 콜해서 쓰는거랑 비교도 해보고.
직접 모델에 쓸 알고리즘 구현해보면서 이런생각들었음. 예전에 친구한테 pooling 관련해서 tensor reference봐도 이해안가는게 있다고 뭔지 아냐고물었떠니... 친구가 말했다. 그런거 쓰지말고 그냥 니가 만들어쓰라고..제로패딩이던 뭐던 니가 만드는게 속편하다......
암튼 실습에 대한 아쉬운점. 실습용 데이터들은 이미 너무 정제되있기도 하고.. 뭘해야하는지 어떻게 하는지 task가 명확해서 내가 삽질을 하며 얻게되는과정은 약간 적었다.
대학원생분들이 2년정도 수업들으며 배우는과정을, 과목별로 1주일씩만 압축해놓았으니... 당연히 초기 인트로 및 기본적인 것만 배울 수 있는건...어쩔수없는것이겠지
암툰 그래서 간단한거라도 만들어보고자.
#목표
간단한 Online learning 프로젝트 구현. 기한은 약 2주 정도가 목표.
#어떤 걸 학습?
Android 에서 gyroscope 및 accelerometer 센서들을 받아 내 행동에 대한 예측.
그리고 Spark streaming 활용한 온라인 러닝
#해야 할 단계
0. Android 어플 구현
- 몇 가지 나의 behavior에 대한 라벨을 달고, 각 센서값들의 데이터를 수집한다.
(서버 구축전까지는 로컬로 csv형태 저장, 나중에 history data들을 학습할 목적)
- 현재는 gyroscope, accelerometer만 쓸거다. 나중에 light 센서나 다른 것 fusion시켜서 뭔가 또 재밌는 모델을 만들 수 있을 것 같다.
1. 모델 구현
- 위 과정에서 수집된 feature, label을 가지고 학습예정.
- 알고리즘은 2가지로 진행할 예정: bagging random forest, bagging MLP
2. Spark기반 서버 구축
- Streaming Data 처리할 서버구축. 분산처리 위해 spark 접목
- 모델은 spark ml에서 돌릴꺼다. 나중에 tensorflow로 대체할수도있고..
- Spark streaming, 카프카 이용
#레퍼런스
비슷한 컨셉의 논문도 찾았다. 논문은 모델에 초점이 맞춰져있고 offline learning이다. 같이 하면서 Spark streaming 써보고 싶다. 근데 논문에 어떻게 모델을 만들었는지는 안나와있다. 이건 구글링이 더 필요하다. 그냥 이런이런 모델들 썼더니 예측 90% 이상으로 제일 잘 나오더라... 이런내용이라 좀 아쉽다.
#장벽
- 하루에 순수 몰두할 4시간을 확보하기. 일과 중엔 일하고. 저녁시간 이후에 집중하자
- Spark streaming에 카프카? 안써봤는데 좀 찾아봐야 함.
- Model이 정말 과연 잘 학습될 것인가 의문이다.
암튼 화이팅 >_<
'IT > Spark' 카테고리의 다른 글
3) 시작하기 앞서 간단 (0) | 2017.06.15 |
---|---|
3) Scala 기본적인 문법들 (0) | 2017.06.12 |
2) 환경구축!! (0) | 2017.06.10 |
1) 스파크 용어 정리 (0) | 2017.06.10 |