เราเริ่มเรียนรู้ปัญญาประดิษฐ์ได้อย่างไร


16

ฉันเป็นนักศึกษาวิศวกรรมซอฟต์แวร์และฉันเป็นผู้เริ่มต้นหลักสูตร AI ที่สมบูรณ์ ฉันได้อ่านบทความมากมายเกี่ยวกับวิธีเริ่มต้นเรียนรู้ AI แต่แต่ละบทความมีวิธีที่แตกต่างกัน ฉันสงสัยว่าผู้เชี่ยวชาญบางคนสามารถช่วยฉันเริ่มต้นได้อย่างถูกต้องหรือไม่

คำถามเพิ่มเติมอีกสองสามข้อ

  1. ฉันควรเน้นภาษาใด มีบทความมากมายแนะนำให้ใช้ Python, C ++ หรือ Lisp สำหรับ AI ฉันสามารถใช้ Java แทนภาษาอื่นที่กล่าวถึงได้หรือไม่

  2. ฉันควรมีพื้นฐานทางคณิตศาสตร์แบบใด ในช่วงปีแรกฉันทำคณิตศาสตร์แบบแยกซึ่งรวมหัวข้อต่อไปนี้: ชุดเมทริกซ์เวกเตอร์ฟังก์ชันตรรกะและทฤษฎีกราฟ (พวกเขาสอนหัวข้อเหล่านี้สั้น ๆ ) มีอีกหัวข้อที่ฉันควรเรียนรู้ตอนนี้? ตัวอย่างเช่นแคลคูลัส?

ถ้าเป็นไปได้ฉันจะขอบคุณแหล่งข้อมูลหรือหนังสือที่ฉันสามารถใช้เพื่อเริ่มต้นใช้งานหรือบางทีพวกคุณสามารถให้รายละเอียดขั้นตอนที่ฉันสามารถติดตามเพื่อติดตามระดับของคุณ

หมายเหตุ: สำหรับตอนนี้ฉันต้องการที่จะมุ่งเน้นไปที่เครือข่ายประสาทและการเรียนรู้ของเครื่อง หลังจากนั้นฉันต้องการสำรวจหุ่นยนต์และการประมวลผลภาษาธรรมชาติ


1
ความซ้ำซ้อนที่เป็นไปได้ของขั้นตอนในการติดตามปัญญาประดิษฐ์คืออะไร
nbro

คำตอบ:


16

ปัญญาประดิษฐ์นั้นเป็นสาขาวิชาที่กว้างขวางและครอบคลุมสาขาวิทยาศาสตร์คอมพิวเตอร์คณิตศาสตร์การออกแบบฮาร์ดแวร์และแม้แต่ชีววิทยาและจิตวิทยา สำหรับคณิตศาสตร์: ฉันคิดว่าแคลคูลัสสถิติและการปรับให้เหมาะสมเป็นหัวข้อที่สำคัญที่สุด แต่การเรียนรู้คณิตศาสตร์มากเท่าที่คุณจะไม่ทำร้าย

มีแหล่งข้อมูลเบื้องต้นฟรีที่ดีมากมายเกี่ยวกับ AI สำหรับผู้เริ่มต้น ฉันขอแนะนำให้เริ่มต้นด้วยสิ่งนี้: http://aiplaybook.a16z.com/ พวกเขายังตีพิมพ์วิดีโอสองเรื่องเกี่ยวกับแนวคิดทั่วไปของ AI คุณสามารถค้นหาได้จาก Vimeo: "AI, การเรียนรู้ลึกและการเรียนรู้ของเครื่อง: A Primer "และ" สัญญาของ AI "

เมื่อคุณมีความเข้าใจอย่างชัดเจนเกี่ยวกับคำศัพท์และวิธีการพื้นฐานของ AI คุณต้องเข้าใจว่าเป้าหมายของคุณคืออะไร คุณต้องการพัฒนาซอฟต์แวร์ AI ชนิดใด อุตสาหกรรมใดที่คุณสนใจ โอกาสของคุณที่จะมีส่วนร่วมในโครงการของ บริษัท ใหญ่ ๆ มีอะไรบ้าง มันง่ายกว่าที่จะรับเครื่องมือที่เหมาะสมเมื่อคุณรู้ว่าคุณต้องการอะไร

สำหรับผู้ที่เพิ่งเริ่มเรียน AI ส่วนใหญ่สิ่งที่น่าสนใจที่สุดคือ Deep Learning เพื่อให้ชัดเจนมีหลายพื้นที่ของ AI นอกการเรียนรู้ของเครื่องและมีหลายพื้นที่ของการเรียนรู้ของเครื่องนอกการเรียนรู้ลึก (ปัญญาประดิษฐ์> การเรียนรู้ของเครื่อง> การเรียนรู้ลึก) การพัฒนาล่าสุดและข่าวไฮเปอร์เกี่ยวกับ DL

หากคุณมีความสนใจในการเรียนรู้ลึกเช่นกันคุณต้องเริ่มต้นด้วยการเรียนรู้เกี่ยวกับแนวคิดของโครงข่ายประสาทเทียม โชคดีที่มันไม่ยากเกินไปที่จะเข้าใจพื้นฐานและมีบทเรียนมากมายตัวอย่างโค้ดและแหล่งการเรียนรู้ฟรีบนเว็บและมีกรอบโอเพนซอร์ซมากมายที่จะเริ่มทำการทดลอง

กรอบการเรียนรู้ที่ได้รับความนิยมมากที่สุดเช่น TensorFlow มันได้รับการสนับสนุนจาก Google รักหรือเกลียดมันเป็นกรอบที่ใช้ Python มีกรอบการทำงานแบบ Python อื่น ๆ อีกมากมายเช่นกัน Scikit-learning, Theano, Keras ถูกกล่าวถึงบ่อยครั้งในบทเรียนเช่นกัน (เคล็ดลับ: ถ้าคุณใช้ Windows คุณสามารถดาวน์โหลด WinPython ที่มีเฟรมเวิร์กเหล่านี้ทั้งหมด)

สำหรับกรอบเกี่ยวกับ Java น่าเสียดายที่มีตัวเลือกไม่มาก เฟรมเวิร์ก Java ที่โดดเด่นที่สุดสำหรับ DL คือ Deeplearning4j มันพัฒนาโดย บริษัท ขนาดเล็กและฐานผู้ใช้มีขนาดเล็กลงมากจากนั้นฝูงชนรอบ ๆ TensorFlow มีโปรเจ็กต์และบทช่วยสอนน้อยลงสำหรับเฟรมเวิร์กนี้ อย่างไรก็ตามผู้เชี่ยวชาญในอุตสาหกรรมกล่าวว่าในที่สุดกรอบการทำงานของ Java จะรวมเข้ากับโซลูชัน Big Data บน Java ได้ดีขึ้นและพวกเขาอาจเพิ่มความสะดวกในการพกพาและการปรับใช้ผลิตภัณฑ์ที่ง่ายขึ้น เพียงแค่ออกจากห้องปฏิบัติการ Jet Propulsion ของ NASA ใช้ Deeplearning4j สำหรับหลายโครงการ

หากคุณตัดสินใจที่จะรับข้อมูลและต้องการเริ่มเรียนรู้เพิ่มเติมเกี่ยวกับ TensorFlow ฉันขอแนะนำให้คุณดูช่อง YouTube ของ "DeepLearning.TV", "sentdex" และ "Siraj Raval" พวกเขามีแบบฝึกหัดที่ดีและการสาธิตที่ยอดเยี่ยม และหากคุณตัดสินใจที่จะดำน้ำลึกคุณสามารถลงทะเบียนสำหรับหลักสูตรออนไลน์ที่ udacity หรือหลักสูตร

คุณอาจสนใจที่จะรู้ว่ามีกรอบการเรียนรู้ลึกอื่น ๆ สำหรับ Java Virtual Machine ที่มีภาษาอื่นเช่น Clojure (Clojure เป็นภาษาของ LISP และมันถูกคิดค้นโดย John McCarthy นักวิทยาศาสตร์คอมพิวเตอร์คนเดียวกับที่ประดิษฐ์คำว่า "ปัญญาประดิษฐ์" ในคำอื่น ๆ มีภาษาและเครื่องมือการเขียนโปรแกรมที่ทันสมัยและเป็นที่นิยมมากขึ้น / เพื่อใช้ภาษาสำหรับ AI ที่ แต่เดิมออกแบบมาสำหรับ AI ThinkTopic ใน Boulder และ Freiheit ในฮัมบูร์กเป็นสอง บริษัท ที่ใช้ Clojure สำหรับโครงการ AI และหากคุณต้องการเห็นสิ่งที่ยอดเยี่ยมที่จะได้รับแรงบันดาลใจในการใช้ Clojure ใน AI และหุ่นยนต์ ฉันแนะนำให้คุณดูวิดีโอ YouTube "OSCON 2013: Carin Meier, The Joy of Flying Robots with Clojure"

(+++ ทุกคนรู้สึกอิสระที่จะแก้ไขฉันถ้าฉันพูดอะไรผิดพลาด +++)


เนื่องจากมีเฟรมเวิร์กน้อยกว่าสำหรับ Java จึงเป็นไปได้ที่จะเขียนเฟรมเวิร์กของฉันเองซึ่งฉันสามารถใช้แทน TensorFlow ได้หรือไม่? ขอบคุณ
aspire29

1
การสร้างกรอบของคุณเองเพื่อศึกษาแนวคิดพื้นฐานเป็นความคิดที่ดีมาก ในอีกทางหนึ่ง TensorFlow ได้รับการพัฒนาโดยชุมชนขนาดใหญ่และผู้เชี่ยวชาญที่มีความสามารถจำนวนมาก สุจริตฉันไม่คิดว่ากรอบงานโฮมเมดใด ๆ สามารถแข่งขันกับมันได้สำเร็จ Btw ฉันไม่เข้าใจว่าทำไมจึงมีกรอบงาน Java AI ไม่กี่อัน ... เพราะมันยังเป็นหมายเลข 1 อยู่ ภาษาการเขียนโปรแกรมและ JVM เป็นเพียงเกี่ยวกับทุกที่ ฉันเดาว่า AI ยังค่อนข้างเกี่ยวกับการวิจัยมากกว่าการผลิต
akopacsi

6

คุณจะพบว่าทั้งแคลคูลัสและพีชคณิตเชิงเส้นมีแอปพลิเคชันบางอย่างในเทคนิค AI / ML คุณสามารถยืนยันได้ว่า ML ส่วนใหญ่ลดให้เป็นพีชคณิตเชิงเส้นและแคลคูลัสถูกนำไปใช้เช่น อัลกอริทึม backpropagation สำหรับการฝึกอบรมโครงข่ายประสาทเทียม

คุณจะได้รับการตอบรับที่ดีในการเข้าชั้นเรียนหรือสองครั้งในโอกาสและสถิติเช่นกัน

การเลือกภาษาการเขียนโปรแกรมมีความสำคัญน้อยกว่า IMO คุณสามารถทำ AI / ML ในภาษากระแสหลักและภาษาที่ไม่สำคัญได้มากมาย ความแตกต่างที่ใหญ่ที่สุดเกี่ยวข้องกับประสิทธิภาพและความพร้อมใช้งานของไลบรารี / เครื่องมือ ตัวอย่างเช่น C ++ มักจะมีประสิทธิภาพสูงกว่า Java หรือ Python และจะช่วยให้คุณ "เข้าใกล้โลหะ" เพื่อเพิ่มขีดความสามารถของฮาร์ดแวร์ของคุณได้อย่างแท้จริง อย่างไรก็ตาม Python มี FFI ที่ดีจริงๆและมักใช้ร่วมกับ C หรือ C ++ Python, C ++, Java, R, Octave / Matlab และภาษาอื่น ๆ ไม่กี่แห่งมักจะมีไลบรารี่คุณภาพสูงจำนวนมากซึ่งอาจเป็นสิ่งสำคัญสำหรับคุณทั้งนี้ขึ้นอยู่กับว่าคุณต้องการทำอะไร

ที่กล่าวว่าคุณอาจไม่ต้องการลอง ML / AI ในการพูด COBOL หรือ PL / I หรือ RPG / 400 หรืออะไรทำนองนั้น ยึดติดกับสิ่งที่ได้รับความนิยมอย่างน้อยสมเหตุสมผล ลองดู mloss.org แล้วดูว่าไลบรารี่ / ชุดเครื่องมือมีให้บริการในภาษาต่างๆและควรช่วยแนะนำทางเลือกของคุณ


5

เมื่อฉันสนใจ AI ฉันเริ่มจากสิ่งพื้นฐานที่สุด หนังสือเล่มแรกของฉันคือรัสเซลและ Norvig ของเทียมข่าวกรองวิธีการที่ทันสมัย ฉันคิดว่ามันเป็นจุดเริ่มต้นที่ดีแม้ว่าคุณจะสนใจ Deep Nets เป็นส่วนใหญ่ก็ตาม มันไม่เพียง แต่ปฏิบัติต่อแนวคิดพื้นฐานและอัลกอริธึมของ AI (ระบบผู้เชี่ยวชาญการค้นหาความลึกแรกและกว้างแรกการแทนความรู้ ฯลฯ ) แต่ยังรวมถึงคณิตศาสตร์พื้นฐาน และปัญหาที่ทราบทั่วไปบางอย่าง (เช่นปัญหาพนักงานขายเดินทาง)

มันอาจเป็นความคิดที่ดีในการเรียนรู้สถิติเนื่องจากคุณสนใจ ML เป็นพิเศษ หลังจากหนังสือที่กล่าวถึงคุณควรมีความคิดที่ดีเกี่ยวกับสิ่งที่จะเรียนรู้ต่อไป

  • ไม่สนใจภาษาการเขียนโปรแกรมมากเกินไป

มันสำคัญมากที่จะเข้าใจการเขียนโปรแกรมเองและเทคนิคที่เกี่ยวข้อง เรียนรู้บางอย่างเกี่ยวกับโครงสร้างข้อมูลอัลกอริทึมและกระบวนทัศน์การเขียนโปรแกรมที่แตกต่างกัน (เช่น OOP, การเขียนโปรแกรมฟังก์ชั่น ฯลฯ ) พยายามเข้าใจตรรกะที่อยู่เบื้องหลังการเขียนโปรแกรมไม่ใช่เฉพาะภาษาใดภาษาหนึ่ง ท้ายที่สุดแล้วการเรียนรู้ภาษาใหม่นั้นไม่ใช่เรื่องยากเมื่อคุณเข้าใจวิธีการเขียนโปรแกรม (จากนั้นการเรียนรู้ภาษาใหม่เป็นเพียงวากยสัมพันธ์เชิงประโยค)


1
ฉันแก้ไขเล็กน้อยเพื่อให้สามารถอ่านได้และเพิ่มลิงก์ไปยังหนังสือเรียน คำแนะนำที่ดีโดยเฉพาะเรื่องภาษาการเขียนโปรแกรม (มองหาผู้เขียนที่ทำงานใน "ภาษาใด ๆ ที่มีไวยากรณ์" :) จริง ๆ แล้วมาลงในสิ่งที่ดีที่สุดหรือสะดวกที่สุดสำหรับโครงการหรืองานที่กำหนด
DukeZhou

4

นี่คือแหล่งข้อมูลที่ฉันพบว่ามีประโยชน์ในการทำความรู้จักกับพื้นฐานของ AI

Andrew Ng เป็นศาสตราจารย์ที่ Stanford ผู้ก่อตั้ง Coursera และปัจจุบันเป็นหัวหน้าฝ่ายวิจัยที่ Alibaba วิดีโอข้างต้นควรให้พื้นฐานที่คุณต้องการเกี่ยวกับ AI


3

ในการเริ่มต้น AI ก่อนอื่นให้เข้าใจว่า AI คืออะไร ทำไมความแม่นยำของ MNIST จึงเพิ่มขึ้นอย่างรวดเร็วหลังจากปี 2012 เหตุใดการเรียนรู้ของเครื่องจึงต้องใช้ AI เพื่อเพิ่มความแม่นยำ

ในการเริ่มต้นและสร้างแอปพลิเคชันบนเครื่องเรียนรู้ด้วย AI คุณไม่จำเป็นต้องใช้คณิตศาสตร์หรือวิทยาศาสตร์จรวด คุณเป็นคนช้าคนของฉันสร้างทางลัดสำหรับทุกปัญหาการเรียนรู้ของเครื่องเช่นเสื้อคลุม คุณเพียงแค่ต้องส่งข้อมูลไปยังวิธีการและวิธีการจะทำทุกอย่าง เริ่มต้นด้วยปัญหาของ MNIST ที่มันน่าตื่นเต้น อ่านเกี่ยวกับประวัติของ MNIST ใช้อัลกอริธึมพื้นฐานในนั้น ลองใช้การถดถอยเชิงเส้น, การถดถอยโลจิสติก, Kmean clusting, KNN เครื่องมือสำหรับการเรียนรู้ของเครื่อง Skite learn (python lib) หรือ Tensorflow (python lib) tflearn (API ระดับสูงของ Tensorflow เหมือน wrapper) ทั้งคู่เป็นโอเพ่นซอร์ส ตัวอย่างมีอยู่ใน GitHub เริ่มค้นหาใน GitHub คุณพบตัวอย่างที่ยอดเยี่ยม สำหรับ lib ทั้งคู่ ใช้ kaggel เพื่อแก้ปัญหาการมีส่วนร่วมในการคำนวณ

เมื่อคุณทำตามอัลกอริทึมทั้งหมดข้างต้นพยายามที่จะมุ่งเน้นไปที่ข้อผิดพลาดของคุณ เอไอเริ่มเข้ามาแล้ว ลองคิดดูว่าเครือข่ายประสาทช่วยให้คุณลดข้อผิดพลาดและเพิ่มความแม่นยำได้อย่างไร จากนั้นลองใช้โครงข่ายประสาทขั้นพื้นฐานบางอย่างเช่น sigmoid, relu และ cnn อย่าลืมใช้ dropout ในเครือข่ายประสาทเทียมของคุณ คุณสามารถใช้ Tensorflow หรือ keras หรือ Tensorflow กับ keras

เคียงคู่กันตรวจสอบวิดีโอพีชคณิตเชิงเส้น 3 Blue 1 Brown เพื่อปรับปรุงคณิตศาสตร์ของคุณ วันละครั้ง แต่วิดีโอหนึ่งวัน

และตอนนี้ให้ความสำคัญกับคณิตศาสตร์ที่อยู่เบื้องหลังตรรกะ (อัลกอริทึมใด ๆ ) คุณสามารถลองหลักสูตรการเรียนรู้ของเครื่อง

ใช้ Tensorflow สำหรับการสร้างแอป Android, แอป IOS, RaspPi Check Tensorflow dev การประชุมสุดยอด 2016/2017

หรือหากคุณต้องการหลักสูตรการชนให้ตรวจสอบhttps://youtu.be/u4alGiomYP4


1
มาทำความเข้าใจกันเถอะ AI ไม่ได้เกี่ยวกับการอ่านหนังสือ html และเริ่มเขียนโปรแกรมเลยขอให้ชัดเจนที่นี่! OP ต้องการปรึกษาอาจารย์จาก Oxford, Harvad ฯลฯ
quintumnia

3

ก่อนที่จะเข้าสู่ปัญญาประดิษฐ์คุณควรทำสิ่งที่จำเป็นต้องมีก่อน ไม่มีรายการที่เป็นของแข็ง แต่ความรู้ที่ดีของอัลกอริทึมต่าง ๆ เป็นภาคบังคับ นอกเหนือจากนั้นคุณควรจะพอใจกับภาษาการเขียนโปรแกรมอย่างน้อยหนึ่งภาษาเช่น C ++ หรือ Java ฉันจะไม่แนะนำให้คุณดำดิ่งสู่ปัญญาประดิษฐ์หากคุณยังใหม่กับวิทยาการคอมพิวเตอร์อย่างสมบูรณ์ ประสบการณ์กับการเขียนโปรแกรมก่อนที่จะดำน้ำในปัญญาประดิษฐ์จะเป็นข้อดีสำหรับคุณ

เริ่มอ่าน (บล็อกเอกสารบทความทางวิชาการ ฯลฯ ) เกี่ยวกับปัญญาประดิษฐ์ เช่นเดียวกับแอปพลิเคชันสถานะปัจจุบันและสิ่งอื่น ๆ ที่คุณสามารถหาได้ เริ่มสร้างรหัส AI สำหรับเกมเล็ก ๆ เช่น Tic Tac Toe, Sudoku, Reversi (Othello) และอื่น ๆ สำหรับการเริ่มต้น คุณสามารถสร้างตัวจำลองของคุณเองและสร้างรหัสที่แก้ลูกบาศก์รูบิคได้ สร้างรหัสสำหรับการจดจำรูปแบบและการเรียนรู้ของเครื่อง ไม่มีอะไรดีไปกว่าการเรียนรู้ด้วยการทำ ภาษาอย่าง LISP และ python จะมีประโยชน์มาก ที่นี่สองคำตอบที่จะช่วยให้คุณมีans1และans2

หากคุณเป็นคนที่ชอบอ่านและเรียนรู้จากหนังสือ (เช่นฉัน) คุณสามารถซื้อปัญญาประดิษฐ์: แนวทางที่ทันสมัย ​​(Peter Norvig และ Stuart Russell) หนังสือเล่มนี้ดีมากและใช้งานได้ดีสำหรับระดับกลางและระดับสูง พยายามแก้ปัญหาการออกกำลังกายที่ให้ไว้ในหนังสือ วิธีการแก้ปัญหาในรูปแบบ pdf หนังสือที่สามารถใช้ได้ออนไลน์ สำหรับการเรียนรู้ของเครื่องหนังสือสองเล่มที่ฉันแนะนำคือการจดจำรูปแบบและการเรียนรู้ของเครื่อง (Christopher M. Bishop) และการเขียนโปรแกรม Collective Intelligence (O'Reilly)

สำหรับการเริ่มต้นมีบทความที่ดีมากเกี่ยวกับปัญญาประดิษฐ์และภาวะเอกฐานเทคโนโลยี

บทความยาวและแบ่งออกเป็นสองส่วน ฉันขอแนะนำให้คุณอ่านบทความนี้หากคุณจริงจังเกี่ยวกับปัญญาประดิษฐ์ มันจะทำให้คุณมีความเข้าใจที่ดี

ความรู้เกี่ยวกับทฤษฎีการคำนวณจะช่วยคุณได้อย่างมาก โดยเฉพาะอย่างยิ่งเมื่อคุณทำงานในสาขาการประมวลผลภาษาธรรมชาติ สาขาย่อยอื่น ๆ ของ AI ที่คุณอาจสนใจคือการเรียนรู้ของเครื่องคอมพิวเตอร์วิวัฒนาการวิวัฒนาการอัลกอริทึมทางพันธุกรรม พัฒนาความรู้เกี่ยวกับสถิติของคุณให้ดีขึ้นจะเป็นปัญญาประดิษฐ์ คอยติดตามพฤติกรรมล่าสุดในสนามผ่านทางฟอรัมเว็บไซต์ ฯลฯเว็บไซต์ Open AI ก็เป็นแหล่งที่ดีเช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.