Search

06.(220322)머신러닝에서 Python(파이썬)을 사용하는 이유

출처

1. 프로그래밍이 단순해진다

첫 번째 이유는 파이썬의 성공 스토리와 관련돼 있다. 이 언어는 간소함을 제공한다. 파이썬이 처음 만들어졌을 때 주된 목표는 읽고 쓰기 쉬운 언어였다.

2. 머신러닝 라이브러리가 있다

파이썬이 머신러닝 툴이 된 두 번째 이유는 사용할 수 있는 풍부한 머신러닝 라이브러리와 프레임워크다. 유명한 사이킷-런(Scikit-learn)부터 텐서플로우(TensorFlow), CNTK, 아파치 스파크 MLlib(Apache Spark MLlib) 등 알려진 머신러닝 및 딥 러닝(Deep Learning) 프레임워크 대부분이 파이썬의 영역에 있거나 파이썬 API를 지원한다. 특히 파이토치(PyTorch) 등은 그 이름에서 알 수 있듯이 특별히 파이썬을 염두에 두고 만들어졌다.

3. 메모리를 대신 관리한다

파이썬 같은 수준 높은 언어가 제공하는 앱스트랙션과 이것이 활용되는 작업은 여러 다른 영역에서 장점이 된다. 예를 들어 파이썬은 프로그래머 대신 세부적인 메모리 관리를 수행하므로 결과적으로 개발자에게 개발 관련 문제에 집중할 수 있는 정신적인 여유를 제공한다. 목록, 설정, 사전, 투플(Tuple) 등 파이썬에 내장된 구성물과 데이터 앱스트랙션은 모두 파이썬 런타임을 통해 메모리를 관리한다. 자바(Java)도 같은 방식이지만 파이썬은 일반적으로 자바보다 정확하고 사용자와 최종 결과 사이에 절차적 장벽의 수가 더 적다.
" 섹션에서 확인할 수 있다. 성능을 최적화하는 또 다른 방법은 싸이썬(Cython)이다. 이 유틸리티 라이브러리를 통해 파이썬 코드를 C로 변환할 수 있다. 싸이썬을 통해 "바닐라" 파이썬과는 다른 방식으로 C의 메모리 관리 및 데이터 구성물에 직접 액세스할 수 있다.

파이썬이 느려도 상관없다

많은 사람이 파이썬을 "편리하지만 빠르지는 않다"고 말한다. 대부분은 맞는 말이다. 파이썬은 개발 편의성 대신에 순수한 성능을 타협하는 것이 일반적이다. 그렇다면 파이썬이 가장 빠른 언어가 아닌데도 머신러닝 같은 연산 집약적인 작업에 사용하는 이유는 무엇일까? 대답은 간단하다. 연산 집약적인 작업을 처리하는 것은 파이썬이 아니기 때문이다.
파이썬 머신러닝 애플리케이션에서 수행하는 실제 연산작업 대부분은 일반적으로 C, C++, 자바 등으로 작성한다. 파이썬은 라이브러리를 통해 이를 정리하고 상호작용할 뿐이다. 파이썬에서 구동하는 애플리케이션의 여러 부분은 일반적으로 성능에 민감하지 않으며 설정 및 해체, 명령 및 제어, 구성요소들 사이의 조정, 로깅(Logging) 및 보고 등을 처리한다.

안녕하세요

한국전자기술연구원 김영광입니다.
관련 기술 문의와 R&D 공동 연구 사업 관련 문의는 “glory@keti.re.kr”로 연락 부탁드립니다.

Hello

I'm Yeonggwang Kim from the Korea Electronics Research Institute.
For technical and business inquiries, please contact me at “glory@keti.re.kr”