기존 프로그래머/엔지니어 관점에서 머신러닝 시작하기

나는 10년정도 IT를 일하면서 최근 유행인 머신러닝, 딥러닝을 이해하고자 노력하였다.
처음 아무것도 모르는 상태에서는 이 기술만 알면 다 되는건가? 라는 생각이 들었고, 조금 접했을 때는 슈퍼바이저? switch랑 다른게 뭐야? 라는 생각이 들었다.
요즘도 외부적인 시선을 보면, 머신러닝만 하면 다 된다라는 말처럼 나오는데, 이말에 속지 않기를 바란다.

결론적으로 애기하면 이는 기존 기술을 대체하는 것이 아닌 강화하는 것으로, 그 속에서 사용할 수 있는 알고리즘을 알아야 한다.

머신러닝이나 딥러닝에서도 알고리즘을 집중적으로 소개하는 이유도 강화할 수 있는 방법을 이해시켜서 이를 개발이나 엔지니어에서 구현해서 사용할 수 있도록 하는 것이라 할 수 있다.
그리고 거기에 함께 나온 언어들이 이러한 알고리즘이 구현되어 있고 입력만 맞춰서 넣어주면 결과가 나온다는 것이므로 여기에 초점을 맞춰서 IT 개발자/엔지니어라면 공부해야 할 것이다.

만약 기존 개발자라면 공부하기 위한 진행과정은 텐서플로우나 머신러닝 프로그램 언어를 먼저 배우기 보다 다음과 같이하는 것을 추천한다.

1. 알고리즘 이해
2. 현재 사용하는 개발 언어로 이를 구현해서 이해
3. 부족한 부분이 무엇인지에 따라 빅데이터 언어나 저장소 언어 공부

바로 빅데이터 저장 방법과 머신러닝 언어를 배우기 보다는 현재 자신이 사용하는 언어로 머신러닝의 알고리즘을 이해했다면 바로 실무에 사용할 수 있는 수준으로 도달할 수 있다. 여기에 부족한 데이터 저장 부분이나 데이터 처리 부분을 부분적으로 신규 언어를 이용해 공부하는게 바람직하다.

머신러닝이나 딥러닝을 공부하면 결과적으로 따라오는 부분이 데이터에 대한 처리와 저장이기 때문에 스파크든 엘라스틱서치든 공부를 할 수 밖에 없다. 처리 언어는 머신러닝 알고리즘이 필요한 경우 사용하면 된다. 특히 몇 몇 방식은 기존 프로그램언어로도 처리가 가능한 부분이 많다. 여기에 머신러닝 라이브러리나 부하 분산 처리 기능이 들어가 있다.

새로 시작하는 사람, 데이터 분석을 하는 사람이라면, 당연히 머신 러닝 언어/빅데이터 저장소로 바로 진입하면 된다.
기존 개발자들은 굳이 기존것을 버릴 필요도 없고, 필요한 부분만 가져다 쓰는것이 이해하는 것부터 효과적이다.
나 역시 프로그램으로 데이터를 많이 핸들링 해봤고, 이부분때문에 머신러닝 기술이 이해하는데 많은 어려움을 격었다.

머신러닝, 요약하자면 표준화된 데이터 분석셋! 따라서 사용하려면 요리 저리 칼질이 필요하다. 하지만 효과적인 알고리즘과 서로 이해할 수 있응 용어를 알고 있다면 손해볼 건 없다.

Facebook Comments

Leave A Reply

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.