AI 분야에서 파이썬이 왜 그렇게 대중적인 언어입니까?


47

우선, 나는 AI를 공부하는 초보자이며 이것은 의견 지향적 질문이나 프로그래밍 언어를 비교하는 질문이 아닙니다. 나는 그것이 최고의 언어라고 말하지 않습니다. 그러나 사실 유명한 AI 프레임 워크의 대부분은 Python을 기본적으로 지원합니다. C # 및 C ++을 지원하는 Microsoft의 Python, C ++ 또는 CNTK를 지원하는 TensorFlow와 같이 다국어 지원 될 수도 있지만 가장 많이 사용되는 것은 Python입니다 (더 많은 문서, 예제, 더 큰 커뮤니티, 지원 등을 의미합니다). C # (Microsoft 및 기본 프로그래밍 언어로 개발)을 선택하더라도 Python 환경을 설정해야합니다.

다른 포럼에서 파이썬이 AI보다 선호된다는 것을 읽었습니다. 코드가 단순하고 깨끗하며 빠른 프로토 타이핑에 적합하기 때문입니다.

AI 테마 (Ex_Machina)로 영화를보고있었습니다. 어떤 장면에서는 주인공이 주택 자동화의 인터페이스를 해킹합니다. 어떤 언어가 현장에 있는지 맞춰보세요? 파이썬.

그렇다면 파이썬과 AI의 관계는 무엇입니까?


영화에서 프로그래밍 언어의 표현은 일반적으로 실제 생활과 관련이 없음을 명심하십시오! 사람들을 낳기 위해 비밀스러운 자갈길처럼 보이는 것은 보통 괜찮습니다.
Oliver Mason

C # 당신이에 관심이있을 수있는 기본 프로그래밍 언어 인 경우 scisharpstack.org
HENON

답변:


32

파이썬에는 엄청난 양의 내장 라이브러리가 있습니다. 많은 라이브러리는 인공 지능 및 기계 학습을위한 것입니다. 일부 라이브러리는 Tensorflow (높은 수준의 신경망 라이브러리), scikit-learn (데이터 마이닝, 데이터 분석 및 기계 학습용), pylearn2 (scikit-learn보다 유연한) 등입니다. 끝. 여기에서

일부 라이브러리를 찾을 수 있습니다 . 파이썬은 OpenCV를 쉽게 구현할 수 있습니다. 모든 사람에게 파이썬을 가장 좋아하는 것은 강력하고 쉬운 구현입니다. 다른 언어의 경우 학생과 연구원은 해당 언어로 ML 또는 AI에 들어가기 전에 해당 언어를 알아야합니다.


이것은 파이썬의 경우가 아닙니다. 매우 기본적인 지식을 가진 프로그래머조차도 파이썬을 쉽게 다룰 수 있습니다. 그 외에도 파이썬에서 코드를 작성하고 디버깅하는 데 소요되는 시간은 C, C ++ 또는 Java와 비교할 때 훨씬 적습니다. 이것이 바로 AI와 ML 학생들이 원하는 것입니다. 구문 오류에 대한 코드를 디버깅하는 데 시간을 소비하지 않고 AI 및 ML과 관련된 알고리즘 및 휴리스틱 스에 더 많은 시간을 보내고 싶습니다 .
라이브러리뿐만 아니라 튜토리얼, 인터페이스 처리는 온라인에서 쉽게 사용할 수 있습니다 . 사람들은 자신의 라이브러리를 만들고 GitHub 또는 다른 곳에 업로드하여 다른 사람들이 사용할 수 있도록합니다.

이 모든 기능은 Python을 적합하게 만듭니다.


10
"구문 오류에 대한 코드를 디버깅하는 데 시간을 소비하고 싶지 않습니다"-프로그래머가이 작업을 수행 하시겠습니까? 파이썬이 모든 것에 가장 적합한 언어입니까? 나는 확신하지 못한다.
Frank Puffer

24

실제로 가장 널리 사용되고 널리 사용되는 딥 러닝 프레임 워크는 모두 Python으로 표면에, C / C ++로 구현되어 있습니다.

필자는 파이썬과 같은 최소한의 구문으로 새로운 아이디어와 코드 프로토 타입을 신속하게 실험 할 수 있기 때문에 과학 및 연구 커뮤니티에서 파이썬이 널리 사용되기 때문이라고 생각합니다.

또한 다른 이유가있을 수 있습니다. 내가 알 수 있듯이 AI에 대한 과대 광고 온라인 과정의 대부분은 초보자 프로그래머가 쉽게 사용할 수 있기 때문에 Python을 추진하고 있습니다. AI는 프로그래밍 과정을 판매하는 새로운 마케팅 인기 단어입니다. (AI를 언급하면 ​​HAL 3000을 구축하려는 어린이에게 프로그래밍 과정을 판매 할 수 있지만 Hello World를 작성하거나 Excel 그래프에 추세선을 놓을 수도 없습니다. :)


4
"....... AI에 대한 과대 광고 된 온라인 과정의 대부분은 초보자 프로그래머가 쉽게 사용할 수 있기 때문에 Python을 추진하고 있습니다. AI는 프로그래밍 과정을 판매하는 새로운 마케팅 인기 단어입니다 ..."---- 좋은 지적 . 캔트가 더 동의합니다.
Emran Hussain

5

파이썬은 개발에 표준 라이브러리가 있고 AI를위한 라이브러리가 있습니다. 직관적 인 구문, 기본 제어 흐름 및 데이터 구조가 있습니다. 또한 표준 컴파일러 언어없이 해석 런타임을 지원합니다. 이를 통해 Python은 AI의 프로토 타이핑 알고리즘에 특히 유용합니다.


파이썬의 해석 능력에 대한 좋은 지적. 컴파일 언어의 더 큰 "마력"보다 유연성과 개발 속도가 선호되는 것처럼 보입니다.
DukeZhou

5

분석 작업에있어 파이썬으로 나를 유혹하게 된 것은 범용 언어로 설계되고 도메인 별 언어로 R로 설계되어 사용 가능한 도구의 "풀 스택"입니다. 실제 데이터 분석은 이야기의 일부일 뿐이며, Python에는 단일 언어 (C / Fortran 래퍼 사용에도 불구하고)에서 처음부터 끝까지 얻을 수있는 풍부한 도구와 완전한 기능을 갖춘 언어가 있습니다.

프론트 엔드에서 필자의 작업은 일반적으로 데이터베이스, 다양한 형식의 파일 또는 웹 스크랩 핑을 비롯한 다양한 소스에서 데이터를 가져 오는 것으로 시작됩니다. 이것에 대한 파이썬 지원은 훌륭하며 대부분의 데이터베이스 또는 공통 데이터 형식에는 인터페이스에 사용할 수있는 견고하고 유지 관리되는 라이브러리가 있습니다. R은 데이터 I / O에 대한 풍부한 정보를 공유하는 것으로 보이지만 FITS의 경우 R 패키지가 활발히 개발되지 않은 것으로 보입니다 (2.5 년 내에 FITSio가 출시되지 않습니까?). 다음 작업 단계는 일반적으로 데이터를 구성하고 시스템 수준의 상호 작용이 많은 파이프 라인 기반 처리를 수행하는 단계에서 발생합니다.

백엔드에서는 큰 데이터 세트를 확실한 방식으로 표시 할 수 있어야하며, 이는 일반적으로 웹 페이지 생성을 의미합니다. 두 개의 프로젝트를 위해 큰 찬드라 조사 프로젝트의 결과를 조사하기 위해 중요한 장고 웹 앱을 작성했습니다. 여기에는 많은 스크래핑 (다 파장 카탈로그) 등이 포함됩니다. 이들은 내부적으로 데이터 세트를 탐색하고 소스 카탈로그 생성을 돕는 데 사용되었지만 전체 프로젝트에서 매우 중요했습니다.

분석을 위해 천문학 관련 기능으로 이동하면 커뮤니티가 Python의 기반이되는 것이 분명해 보입니다. 이것은 개인 및 기관 차원에서 이용 가능한 패키지의 깊이와 개발 활동 수준에서 볼 수 있습니다 ( http://www.astropython.org/resources ). 가용하고 작동중인이 수준의 인프라를 고려할 때 천문학을위한 가장 유용한 R 통계 도구를 Python으로 이식하기위한 노력을 지시하는 것이 합리적이라고 생각합니다. 이것은 당신이, 내가 강력하게이 문서를 읽어 관심이 권장된다 rpy2.If를 통해 파이썬에서 호출 R 기능에 대한 현재의 기능을 보완하는 것, 여기가 프로그래밍 언어를 비교하는 질문 https://diceus.com/what-technology-은 is-b ... nd-java-r / 도움이되기를 바랍니다. 행운


3

파이썬에는 풍부한 라이브러리가 있으며 객체 지향적이며 프로그래밍하기 쉽습니다. 프론트 엔드 언어로도 사용할 수 있습니다. 그것이 인공 지능에 사용되는 이유입니다. AI 대신 기계 학습, 소프트 컴퓨팅, NLP 프로그래밍에 사용되며 웹 스크립팅 또는 윤리적 해킹에도 사용됩니다.


파이썬은 실제로 웹 스크립팅을위한 최고의 프로그래밍 언어이기 때문에 훌륭한 답변입니다. 처음에는 Autoim이 Aimbot 쓰기에 사용되기 때문에 완벽한 스크립팅 언어라는 것을 세상에 설명 할 수 있을까 걱정이되었습니다.
Manuel Rodriguez

2

파이썬은 세련된 구문을 가진 현대적인 스크립팅 객체 지향 프로그래밍 언어이기 때문입니다. 자바 및 C ++와 같은 구조적 프로그래밍 언어와 달리, 스크립팅 특성으로 인해 프로그래머는 자신의 가설을 매우 빠르게 테스트 할 수 있습니다. 또한 AI 분야에서 파이썬의 사용을 넓히는 많은 오픈 소스 머신 러닝 라이브러리 (scikit-learn 및 Keras 포함)가 있습니다.


2

인지 시스템을 개발하는 데 매우 유용한 옵션이되는 여러 가지 요소가 혼합되어 있습니다.

  • 빠른 개발
  • 신속한 프로토 타입
  • 거의 인간 수준의 가독성을 갖춘 친숙한 구문
  • 다양한 표준 라이브러리 및 다중 패러다임
  • C / C ++와 같은 컴파일 된 언어로 작성된 성능 백엔드의 프론트 엔드로 사용할 수 있습니다.

numpy 및 기타와 같은 기존의 성능 수치 라이브러리는 이미 집중적 인 대량 작업을 수행하므로 시스템의 아키텍처 측면에 더 집중할 수 있습니다.

게다가, 파이썬 주변에는 매우 큰 커뮤니티와 생태계가 있으며, 그 결과 다른 종류의 작업을위한 다양한 도구가 제공됩니다.


0

저는 실제로 머신 러닝을 위해 C를 선호합니다. 인생에서와 마찬가지로, 우리가 알고있는 세상에서는 끝이없는 "논리 문"(기본적으로 동전 뒤집기와 같은 것)으로 구성되어 있기 때문에 두 가지 가능한 결과가 있습니다. 우주가 끝없는 것처럼 보이지만, 우리는 여전히 가장 작은 것보다 더 작은 것을 찾는 것을 멈추지 않습니다.

그래서 ... C를 프로그래밍 할 때 컨텍스트에 넣기 위해, 결합 된 작은 스 니펫을 코딩하여 메모리 사용을보다 효율적으로 제어 할 수 있습니다. 생물학에서 세포 "(측정 가능한 기능을 가지고 있으며 사전 설정된 속성이 있습니다).

따라서 AI를 프로그래밍 할 때 RAM 사용량이 적고 CPU 사용량이 적도록 최적화하고 싶습니다. C에서는 기본 유전자 알고리즘으로 피드 포워드 만 수행했지만 C ++로 작성된 고급 재귀 신경망은 "std :: vector name;"을 사용하는 단순성 때문에 자체 cvector.c를 작성했습니다. https://pastebin.com/sBbxmu9T 및 cvector.h : https://pastebin.com/Rd8B7mK4 및 디버그 : https://pastebin.com/kcGD8Fzf-gcc -o debug debug.c cvector.c로 컴파일) 이는 실제로 최적화 된 신경망을 만들 때 CPU 사용량 (및 전체 런타임)을 최적화하는 데 도움이되었습니다.

도움이 되길 바랍니다.

편집 : 그래서 나는 어떤 의미에서 AlexPnt가 보는 것과 반대되는 것을 본다. "자기"의 영역 내에서 가능한 것을 탐구 할 때.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.