제가 머신러닝을 배우려고 하는데 어떤 언어를 배우는게 맞나요?
안녕하세요 현재 대학교 2학년 공대 학생입니다.
학교 과목에 머신러닝이 아직 없고, 내년에 개설될 예정이라 아직 관련 정보가 없습니다.
보통 파이썬을 배운다고 하시는데 자바는 의미가 없을까요?
파이썬을 추천드립니다. C/C++과의 통합성도 아주 뛰어나기 때문에 CPU에 과도하게 부담을 주는 작업은 C/C++로 쉽게 구현할 수 있습니다. 그리고 파이썬에는 넘파이(NumPy), 판다스(Pandas), 싸이파이(sciPy), 싸이킷런(Scikit-learn)과 같은 다양한 라이브러리들이 있기 때문에 수학, 통계, 컴퓨터 과학을 위한 강력한 도구가 될 수 있습니다. 그래서 현재 머신 러닝, 딥 러닝, 데이터 사이언스 분야를 비롯한 수많은 과학 영역에서 파이썬이 지배적인 언어가 될 수 있었습니다.
파이썬은 개발자 커뮤니티도 매우 활성화되어 있고, 지원체계도 좋습니다. 여러분이 기업용 애플리케이션을 개발하든, 데이터 사이언스 분야에서 일하고 있든, 인공지능 분야에서 연구를 진행하고 있는가에 관계없이, 여러분이 필요한 라이브러리와 프레임워크를 얼마든지 찾을 수 있습니다.하지만 자바는 아직 생태계가 자리잡혀 있지 않습니다. 딥러닝 프레임워크인 PyTorch와 TensorFlow는 파이썬을 지원하지만 자바 언어는 지원하지 않습니다. 자바를 한다고 하면 머신러닝 하기 굉장히 어렵습니다.
파이썬을 추천드립니다. 수많은 라이브러리들이 파이썬이 기본적으로 바탕되어 있습니다(sklearn 등). 파이썬이 빛을 발하는 이유는 스크립트를 써내려가면서 matrix와 array들이 어떻게 변해가고 있는지, 그리고 visualization은 어떻게 되는지 바로바로 빠르게 볼 수 있기 때문입니다. 저도 처음 공부할 때 Jupyter Notebook으로 공부를 했고, 몇 년이 지났지만 아직도 ML 관련 프로젝트들은 기본적으로 Jupyter Notebook을 사용합니다. 자바는 한번 실행할 때 마다 컴파일 해야하고 boilerplate(프로그램이 돌아가기 위해 넣어야하는 기본 장치들)이 너무 많아서 사용하기 불편하다고 생각되는 부분이 있습니다.
파이썬 다음으로는 R이 있습니다만, R은 분포나 통계적으로 계산할 때 파이썬 보다 편한 면이 있습니다. (특히 p-value 같은 것들 계산할 때 엄청 편합니다.) 하지만 2010년대 후반에 들어서는 파이썬이 훨씬 강세이었기에 R은 통계 공부를 따로 하지 않으실 거라면 파이썬만 일단 하는 것이 맞다고 생각합니다.
감사합니다. 또 궁금한 점 있으시다면 추가 댓글 올려주세요.
일단 파이썬으로 Tesseract OCR 이나 OpenCV와 같은 대부분의 인공지능 모듈을 사용할 수 있기 때문에 파이썬이 인공지능에 최적화돼있는 것은 맞습니다.
코딩은 처음 배우시는거라면 기본적인 알고리즘 공부부터 하시는게 좋습니다.
내가 어느정도 코딩에 감이 있다 생각하시면 C언어부터 공부하시고
그게 아니라 코딩 처음하고 코딩에 흥미를 느껴보고 싶다 하시면 파이썬부터 시작하시면 됩니다.
기본적인 언어 몇개를 다룰 줄 알면 그때 자바, 웹 프로그래밍, 앱 개발 등 분야를 구체화시키시면 됩니다.
추천하는 책으로는 점프 투 ~~~(파이썬) 시리즈 이고요.
참고로 코딩 배우는 곳은 책 보다는 인터넷에 올라와있는 오픈소스를 이용하시는게
훨씬 배우기 좋습니다. 이론보단 실전이 좋은 편이죠.
자바로도 머신러닝을 할 수 있을 듯 싶지만 머신러닝에서 주류 언어인 파이썬을 배우시는 것이 좋을 듯 싶습니다.
머신러닝 관련 라이브러리가 자바보다는 파이썬에서 훨씬 많을 것으로 보이며, 머신러닝을 연구하거나 개발하는 개발자의 수
차이도 꽤 있을 것으로 보입니다. 이러한 차이를 메꿀 실력이 있다면 자바로도 도전해볼 수 있겠지만 그렇지 않다면
파이썬을 통하여 공부하시는 것이 좋을 듯 싶습니다.
머신러닝을 보통은 파이썬으로 많이 하기는 합니다.
이유로는 텐서플로우 같은 것이 파이썬 환경에서 쉽게 사용할 수 있게 되어 있기 때문입니다.
텐서플루우 아니여도 주피터 노트북 같은 머신러닝을 테스트해볼 수 있는 개발환경이 잘되어 있습니다.
자바로도 찾아보면 불가능하지는 않을것 같지만 잘되어 있는 환경을 놔두고 꼭 자바로할 이유가 있을까 합니다.
특히나 잘안될때는 구글링을 하게 되면 자바보다는 파이썬에서 해결하는 방법이 더 많이 나올 것입니다.
보통 파이썬을 배운다고 하시는데 자바는 의미가 없을까요? 라고 질문을 하셨는데요
개발언어는 우리가 상황에 맞게 영어,중국어,한국어를 선택해서 배우듯이
님도 여러개의 개발언어중에서 현재 상황에 맞는 언어를 택하시면 됩니다만
머신러닝 관련하여 많은 예제와 많은 오픈라이브러리가 있는게 파이썬이므로
파이썬을 배우시는것도 나쁘지 않을것이라 판단이 됩니다