인공 지능을 배우기 시작하는 방법은 무엇입니까?


16

저는 소프트웨어 엔지니어링 학생이며 AI의 초보자입니다. AI 학습을 시작하는 방법에 대한 많은 기사를 읽었지만 각 기사는 다른 방법을 제안합니다. 전문가 중 일부가 올바른 방법으로 시작하는 데 도움이 될지 궁금합니다.

몇 가지 더 구체적인 질문

  1. 어떤 언어에 집중해야합니까? 많은 기사에서 AI, Python, C ++ 또는 Lisp를 제안합니다. 언급 된 다른 언어 대신 Java를 사용할 수 있습니까?

  2. 어떤 수학적 배경이 있어야합니까? 첫 해에 저는 세트, 행렬, 벡터, 함수, 논리 및 그래프 이론과 같은 주제를 포함하는 이산 수학을했습니다 (이 주제에 대해 간략하게 가르쳤습니다). 내가 지금 배워야 할 주제가 더 있습니까? 예를 들어 미적분?

가능하다면 시작하기 위해 사용할 수있는 자료 나 서적에 감사하거나, 여러분의 레벨에 맞추기 위해 따를 수있는 자세한 절차를 알려줄 수도 있습니다.

참고 : 지금은 신경망과 머신 러닝에 집중하고 싶습니다. 그 후 로봇 공학과 자연어 처리를 탐구하고 싶습니다.


답변:


16

인공 지능은 매우 광범위한 분야이며 컴퓨터 과학, 수학, 하드웨어 설계 및 생물학 및 심리학 분야의 많은 분야를 다루고 있습니다. 수학에 관해서는 : 미적분학, 통계 및 최적화가 가장 중요한 주제라고 생각하지만 많은 수학을 배우는 것은 아프지 않을 것입니다.

초보자를위한 AI에 대한 무료 입문 자료가 많이 있습니다. : 내가보기 엔이 일을 시작하는 것이 좋습니다 http://aiplaybook.a16z.com/ 당신이 비 메오를 찾을 수 있습니다, 그들은 또한 AI의 일반적인 개념에 대해 두 개의 비디오를 게시 : "AI, 깊은 학습 및 기계 학습 : 뇌관을 "와"AI의 약속 "

기본 AI 용어와 접근 방식에 대한 명확한 이해가 이루어지면 목표가 무엇인지 파악해야합니다. 어떤 종류의 AI 소프트웨어를 개발하고 싶습니까? 어떤 산업에 관심이 있습니까? 대기업 프로젝트에 참여할 수있는 기회는 무엇입니까? 원하는 것을 정확히 알고 있으면 올바른 도구를 선택하는 것이 더 쉽습니다.

AI를 처음 접하는 대부분의 사람들에게 가장 흥미로운 영역은 딥 러닝입니다. 명확하게 말하면 머신 러닝 외부에는 AI 영역이 많고 딥 러닝 외부에는 머신 러닝 영역이 많이 있습니다. (인공 지능> 머신 러닝> 딥 러닝) 최근 개발 및 과장된 뉴스의 대부분은 DL에 관한 것입니다.

딥 러닝에도 관심이 있다면 인공 신경망의 개념에 대해 배우는 것부터 시작해야합니다. 다행히도 기본 사항을 이해하는 것은 어렵지 않으며 웹에는 많은 자습서, 코드 예제 및 무료 학습 리소스가 있으며 실험을 시작할 수있는 많은 오픈 소스 프레임 워크가 있습니다.

가장 많이 사용되는 딥 러닝 프레임 워크는 TensorFlow입니다. Google이 지원합니다. 그것을 좋아하거나 싫어하는 것은 Python 기반 프레임 워크입니다. 다른 파이썬 기반 프레임 워크도 많이 있습니다. Scikit-learn, Theano, Keras는 튜토리얼에서도 자주 언급됩니다. (팁 : Windows를 사용하는 경우 이러한 모든 프레임 워크가 포함 된 WinPython을 다운로드 할 수 있습니다.)

Java 프레임 워크에 관해서는 불행히도 많은 옵션이 없습니다. DL의 가장 두드러진 Java 프레임 워크는 Deeplearning4j입니다. 소규모 회사에서 개발했으며 사용자 기반은 TensorFlow 주변의 군중보다 훨씬 작습니다. 이 프레임 워크에 대한 프로젝트와 튜토리얼이 적습니다. 그러나 업계 전문가들은 자바 기반 프레임 워크가 결국 자바 기반 빅 데이터 솔루션과 더 잘 통합되며 더 높은 수준의 휴대 성과 제품 배포가 더 쉬울 수 있다고 말합니다. 참고 사항 : NASA의 제트 추진 연구소는 많은 프로젝트에 Deeplearning4j를 사용했습니다.

흐름을 진행하기로 결정하고 TensorFlow에 대해 더 배우고 싶다면 "DeepLearning.TV", "sentdex"및 "Siraj Raval"의 YouTube 채널을 확인하는 것이 좋습니다. 훌륭한 튜토리얼과 멋진 데모가 있습니다. 더 심층적 인 다이빙을하기로 결정한 경우, 대도시 또는 코스 라에서 온라인 코스에 등록 할 수 있습니다.

Clojure와 같은 대체 언어를 사용하는 Java Virtual Machine에 대한 다른 딥 러닝 프레임 워크가 있다는 것도 흥미 롭습니다. Clojure는 LISP의 방언으로 "인공 지능"이라는 용어를 만든 컴퓨터 과학자 존 맥카시 (John McCarthy)가 발명 한 것입니다. AI를 위해 원래 설계된 AI 언어를 사용합니다 .Boulder의 ThinkTopic과 함부르크의 Freiheit는 AI 프로젝트에 Clojure를 사용하는 두 회사입니다. YouTube 동영상 "OSCON 2013 : Carin Meier, Clojure를 사용한 비행 로봇의 기쁨"을 확인하는 것이 좋습니다.

(+++ 내가 잘못 말하면 누구나 자유롭게 고칠 수 있습니다. +++)


Java에 대한 프레임 워크가 적으므로 TensorFlow를 대신 할 수있는 자체 프레임 워크를 작성할 수 있습니까? 감사합니다
aspire29

1
기본 개념을 연구하기위한 자체 프레임 워크를 만드는 것이 좋습니다. 반면에 TensorFlow는 거대한 커뮤니티와 많은 재능있는 전문가가 개발했습니다. 솔직히 나는 수제 프레임 워크가 성공적으로 경쟁 할 수 있다고 생각하지 않습니다. Btw, Java AI 프레임 워크가 왜 그렇게 적은지 이해하지 못합니다 ... 여전히 1 위라고 생각합니다. 프로그래밍 언어와 JVM은 거의 모든 곳에 있습니다. AI는 여전히 생산보다는 연구에 관한 것 같습니다.
akopacsi

6

미적분학과 선형 대수학 모두 AI / ML 기술에 적용 할 수 있습니다. 많은 의미에서 ML의 대부분이 선형 대수로 감소하고 미적분학이 예를 들어 사용된다고 주장 할 수 있습니다. 신경망 훈련을위한 역 전파 알고리즘.

당신은 확률과 통계에서도 클래스를 이수하는 것이 좋을 것입니다.

프로그래밍 언어 선택은 덜 중요합니다 (IMO). 거의 모든 주류 언어와 비 주류 언어로 AI / ML을 수행 할 수 있습니다. 가장 큰 차이점은 성능 및 라이브러리 / 도구의 가용성과 관련됩니다. 예를 들어, C ++은 일반적으로 Java 나 Python보다 성능이 뛰어나며 "금속에 근접"하여 하드웨어 기능을 극대화 할 수 있습니다. 그러나 파이썬은 정말 좋은 FFI를 가지고 있으며 종종 C 또는 C ++과 함께 사용됩니다. Python, C ++, Java, R, Octave / Matlab 및 기타 몇 가지 언어에는 사용 가능한 고품질 라이브러리가 많기 때문에 원하는 작업에 따라 중요 할 수 있습니다.

즉, COBOL 또는 PL / I 또는 RPG / 400 등에서 ML / AI를 시도하고 싶지 않을 것입니다. 적어도 합리적으로 인기있는 것을 고수하십시오. mloss.org를 둘러보고 다른 언어로 제공되는 라이브러리 / 툴킷을 확인하고 선택에 도움이 될 것입니다.


5

AI에 관심이 있었을 때 가장 기본적인 것부터 시작했습니다. 저의 첫 번째 책은 Russell & Norvig의 인공 지능-현대적인 접근 이었습니다. Deep Nets에 관심이 많더라도 시작하기에 좋은 곳이라고 생각합니다. 기본적인 AI 개념 및 알고리즘 (전문가 시스템, 깊이 우선 및 폭 우선 검색, 지식 표현 등)뿐만 아니라 기본 수학 (베이지 추론, 1 차 논리, NL n- 그램 등)도 처리합니다. 일반적으로 알려진 몇 가지 문제 (예 : 출장 세일즈맨 문제).

ML에 특히 관심이 있으므로 통계를 배우는 것이 좋습니다. 언급 된 책 후에는 다음에 배울 내용에 대해서도 잘 알고 있어야합니다.

  • 프로그래밍 언어에 대해 너무 신경 쓰지 마십시오.

프로그래밍 자체와 관련 기술을 이해하는 것이 훨씬 중요합니다. 데이터 구조, 알고리즘 및 다양한 프로그래밍 패러다임 (OOP, 함수형 프로그래밍 등)에 대해 알아 봅니다. 특정 언어 만이 아니라 프로그래밍의 논리를 이해하십시오. 결국, 새로운 언어를 배우는 것이 프로그래밍 방법을 이해하면 어렵지 않습니다 (그런 다음 새로운 언어를 배우는 것은 다소 문법적인 설탕입니다).


1
가독성을 약간 수정하고 교과서에 대한 링크를 추가했습니다. 좋은 조언, 특히 re : 프로그래밍 언어. ( "구문이있는 모든 언어"로 작업하는 코더를 살펴보십시오.) 실제로 주어진 프로젝트 나 작업에 가장 최적이거나 편리한 것이 무엇입니까?
DukeZhou


3

AI를 시작하려면 무엇보다 AI가 무엇인지 이해해야합니다. 2012 년 이후 MNIST의 정확도가 급격히 증가하는 이유. 정확도를 높이기 위해 기계 학습에 AI가 필요한 이유는 무엇입니까?

AI로 기계 학습에서 응용 프로그램을 시작하고 빌드하려면 수학이나 로켓 과학이 필요하지 않았습니다. 내 동료들이 래퍼와 같은 모든 기계 학습 문제에 대한 바로 가기를 작성하는 데 늦었습니다. 메소드에 데이터를 전달하면 메소드가 모든 것을 처리합니다. 흥미 진진한 MNIST의 문제로 시작하십시오. MNIST의 역사 사용 기본 알고리즘에 대해 읽으십시오. 선형 회귀, 로지스틱 회귀, Kmean clusting, KNN을 사용해보십시오. 기계 학습을위한 도구 Skite learn (python lib) 또는 Tensorflow (python lib) tflearn (래퍼와 같은 Tensorflow의 상위 레벨 api) 둘 다 오픈 소스입니다. 예제는 GitHub에서 사용할 수 있습니다. GitHub에서 검색을 시작하십시오. 좋은 예를 찾았습니다. 두 라이브러리 모두. kaggel을 사용하여 문제를 해결하십시오.

위의 모든 알고리즘을 완료하면 오류에 집중하십시오. 이제 AI가 등장했습니다. 신경망이 어떻게 오류를 줄이고 정확성을 높이는 데 도움이되는지 알아 봅니다. 그런 다음 sigmoid, relu 및 cnn과 같은 기본 신경망을 사용해보십시오. 신경망에서 드롭 아웃을 사용하는 것을 잊지 마십시오. keras와 함께 Tensorflow 또는 keras 또는 Tensorflow를 사용할 수 있습니다

나란히 검사 3 Blue 1 Brown의 선형 대수 비디오는 수학을 향상시킵니다. 하루에 한 번이지만 매일 하나의 비디오.

이제 논리 배후의 수학 (모든 알고리즘)에 중점을 둡니다. andrew ng 기계 학습 과정을 시도 할 수 있습니다.

Android 앱, iOS 앱, RaspPi Check Tensorflow 개발 서밋 2016/2017을 빌드하는 데 Tensorflow를 사용하십시오.

또는 충돌 코스가 필요한 경우 https://youtu.be/u4alGiomYP4 를 확인 하십시오.


1
AI가 html book을 읽는 것에 관한 것이 아니라 프로그래밍을 시작한다는 것을 분명히하자. 영업 이익은 옥스포드에서 교수와 상담 할 필요가, harvad 등
quintumnia

3

인공 지능에 들어가기 전에 선행 조건으로 수행해야합니다. 확실한 목록은 없지만 다양한 알고리즘에 대한 좋은 지식이 필수적입니다. 그 외에도 C ++ 또는 Java와 같은 하나 이상의 프로그래밍 언어에 익숙해야합니다. 컴퓨터 과학에 완전히 익숙하지 않다면 인공 지능에 뛰어들 것을 제안하지 않습니다. 인공 지능에 뛰어 들기 전에 프로그래밍에 대한 경험이 있으면 더할 나위없이 좋습니다.

인공 지능에 대한 읽기 (블로그, 논문, 학자 기사 등)를 시작하십시오. 그것이 무엇인지, 응용 프로그램, 현재 상태 및 찾을 수있는 다른 것들. Tic Tac Toe, Sudoku, Reversi (Othello) 등과 같은 작은 게임을위한 AI 코드 제작을 시작하십시오. 자신 만의 시뮬레이터를 만들고 Rubik 큐브를 해결하는 코드를 작성할 수 있습니다. 마찬가지로 패턴 인식 및 기계 학습을위한 코드를 작성하십시오. 행함으로써 배우는 것보다 더 좋은 것은 없습니다. LISP 및 python과 같은 언어가 매우 유용합니다. 다음은 ans1ans2에 도움이되는 두 가지 답변입니다 .

당신이 (나 같은) 책을 읽고 배우기를 좋아하는 사람이라면 인공 지능 : 현대적 접근 방식 (Peter Norvig 및 Stuart Russell)을 구입할 수 있습니다. 이 책은 매우 훌륭하고 중급 및 고급 수준에 적합합니다. 책에 주어진 운동 문제를 해결하려고 노력하십시오. 도서의 솔루션 PDF는 온라인 으로 제공 됩니다 . 기계 학습의 경우 권장하는 두 권의 책은 패턴 인식 및 기계 학습 (Christopher M. Bishop)과 프로그래밍 집단 지능 (O'Reilly)입니다.

처음에는 인공 지능 및 기술 특이점에 대한 훌륭한 기사 가 있습니다.

기사는 길고 두 부분으로 나뉩니다. 인공 지능에 대해 진지한 경우이 기사를 읽는 것이 좋습니다. 좋은 통찰력을 줄 것입니다.

계산 이론에 대한 지식은 당신에게 큰 도움이 될 것입니다. 특히 자연어 처리 분야에서 일할 때. 관심을 가질만한 AI의 다른 하위 필드는 머신 러닝, 진화 컴퓨팅, 유전자 알고리즘, 강화 학습, 딥 러닝 등입니다. 목록은 계속됩니다. 통계에 대한 지식이 많을수록 인공 지능에 더 좋습니다. 포럼, 웹 사이트 등을 통해 해당 분야의 최근 소식에 계속 관심을 가져주십시오. Open AI 웹 사이트 도 매우 좋은 소스입니다.

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