머신러닝이 최근 몇년간 이 분야에서 상당히 인기를 끔으로 많은 사람들이 머신러닝에 발을 들여놓고 있다.
그리고 이 머신러닝을 배우고 구현하는것에 있어서 파이썬은 상당히 유명한 언어중 하나다.
파이썬이 머신러닝에 있어서 유명한 이유 중 몇가지를 소개하자면
- 머신러닝에 있어서 방대한 라이브러리 컬렉션
- 간단하고 배우기 쉬움
- 이동성
- 타 언어들과의 혼용 가능성
이 있겠다.
그럼 이제 머신러닝에 사용되는 주요 파이썬 라이브러리를 몇가지 소개하겠다.
- 넘파이 Numpy
넘파이는 파이썬에서 개발된 선형 대수이다.
머신러닝은 수학과 관계가 깊다.
따라서 많은 수학적인 계산과 연산, 특히 행렬과 관련된 파이썬 라이브러리는 필수인데 넘파이는 다른 대부분의 머신러닝 패키지를 범위 내에 포함하고 있기 때문에 많은 개발자들은 다른 머신러닝 라이브러리보다 넘파이를 선호한다.
또한 푸리에 변환, 선형 대수, 난수 및 파이썬에서의 행렬 및 n차원 배열 등과 같은 복잡한 수학 연산을 처리하는 기능이 있고 과학적 계산까지 가능해서 음파, 이미지 및 다른 이진함수를 처리하는데 널리 사용되고 있다.
- 텐서플로 Tensorflow
텐서플로는 수치계산과 대규머 머신러닝을 위한 구글 브레인 팀이 개발한 오픈소스 라이브러리이다.
머신러닝을 위한 가장 권장되는 파이썬 라이브러리 중 하나로 자연어처리, 순환 신경망, 이미지 인식, 단어 임베딩, 손 글씨 숫자 분류와 편미분 방정식을 위한 심층 신경망을 처리할 수 있다.
텐서플로의 주요 이점 중 하나는 머신러닝 및 AI 프로젝트를 위한 추상화이다.
그덕에 이 라이브러리를 사용하면 파이썬 개발자들은 AI와 머신러닝을 활용해 안면 인식, 음성 인식과 같은 기능을 담은 어플리케이션을 만들 수 있다.
- 파이토치 PyTorch
파이토치는 각종 커뮤니티에서 지원하는 우수한 예제들과 어플리케이션 및 각종 사용 사례를 갖춘 준비된 파이썬 머신러닝 라이브러리이다.
강력한 GPU 가속을 사용하여 자연어 처리와 같은 일에서 이를 적용할 수 있게 해준다.
GPU와 CPU 연산을 지원하므로 성능 최적화와 연구분야에서 힘을 발휘한다.
GPU 가속을 사용한 심층 신경망과 텐서 계산은 파이토치의 두가지 고급기능이다.
딥러닝 프레임워크의 성능을 향상시키는 글로우라는 머신러닝 컴파일러를 포함한다.
- 판다스 Pandas
판다스는 데이터 조작 및 분석을 위한 다양한 툴과 함께 제공되는 오픈소스 라이브러리이다.
이 라이브러리의 도움으로 SQL 데이터베이스, CSV, JSON 파일 및 엑셀과 같은 다양한 소스의 데이터를 읽을 수 있게 된다.
이 기능을 사용하면 한두개의 명령만으로 복잡한 데이터 작업을 관리할 수 있다.
또한 파이썬 판다스는 데이터를 합치고 시계열 기능을 그룹화하고 필터링하는 많은 방법을 포함한다.
- Matplotlib
Matplotlib는 MATLAB식의 인터페이스를 사용한다.
Qt, wxPython, GTK+ 또는 Tkinter와 같은 표준 GUI 툴킷을 사용하며 객체 지향 API와 함께 프로그래머들에게 그래프와 플롯을 애플리케이션에 임베드 할 수 있게 해준다.
또한 고품질 2D 플로팅 그래프 및 그림을 여러 형식으로 만들게 해준다.
- 사이파이 Scipy
사이파이는 인테그레이션, 최적화, 선형대수와 통계에 대한 다양한 모듈을 포함하는 라이브러리이다.
사이파이 라이브러리와 사이파이 stack에는 차이가 있다.
사이파이가 사이파이 stack을 뒷받침해주는 핵심 패키지 중 하나이다.
더불어 사이파이는 이미지 조작에도 아주 유용하다.
- 케라스 Keras
케라스는 머신러닝 초보자에게 추천해줄 만한 라이브러리이다.
신경망을 더 쉽게 표현할 수 있는 방법을 제공하고 모델 컴파일링, 데이터 세트 처리, 결과 평가, 그래프 시각화 등 많은 유틸리티를 제공한다.
케라스는 내부적으로 텐서플로나 티아노를 백엔드로 사용하며 CNTK와 같은 다른 인기 있는 신경망 프레임워크도 사용할 수 있고 Inception, SqueezeNet, Mnist, VGG, ResNet 등의 pre-trained 모델과 전처리된 데이터 세트를 제공한다.
케라스는 백엔드 인프라를 사용하여 계산 그래프를 구성하고 이를 작업 수행하는 것에 사용하기 때문에 다른 라이브러리에 비해 속도가 느리다.
- 티아노 Theano
티아노는 다차원 배열을 다루는 수학 식을 정의, 최적화, 더 나아가 평가까지 할 수 있게 하는 잘 알려진 과학 컴퓨팅 라이브러리다.
티아노는 데이터 집약적인 계산을 CPU에서만 실행 할 때 더 빠르게 수행할 수 있게 해준다.
또한 GPU에 잘 최적화되어 있으며 기호 미분을 효과적이게 하며 광범위한 코드 테스트 기능을 포함한다.
하지만 텐서플로와 비교했을 때 티아노에게 단점이 한가지 있는데 그건 바로 초보자에게는 구문이 꽤나 어렵다는 것이다.