6 ภาษาโปรแกรมที่ดีที่สุดสำหรับการพัฒนา AI

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

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

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

Python

อันดับหนึ่งก็ยังคงเป็น Python มันจะเป็นอย่างอื่นได้ยังไง? ในขณะที่มีเรื่องน่ารังเกียจเกี่ยวกับ Python หากคุณใช้งาน AI คุณเกือบจะใช้ Python ในบางจุด และบางจุดที่หยาบกร้านได้เรียบขึ้นเล็กน้อย

ในขณะที่เรามุ่งหน้าสู่ปี 2020 ปัญหาของ Python 2.x กับ Python 3.x กำลังกลายเป็นสิ่งที่น่ารังเกียจเนื่องจากไลบรารีหลักเกือบทุกแห่งรองรับ Python 3.x และกำลังยกเลิกการรองรับ Python 2.x ทันทีที่ทำได้ กล่าวอีกนัยหนึ่งในที่สุดคุณก็สามารถใช้ประโยชน์จากคุณสมบัติภาษาใหม่ทั้งหมดได้อย่างจริงจัง

และในขณะที่ฝันร้ายของบรรจุภัณฑ์ของ Python ซึ่งทุกวิธีการแก้ปัญหาแตกต่างกันเล็กน้อยยังคงมีอยู่คุณสามารถใช้ Anaconda ได้ประมาณ 95% ของเวลาและไม่ต้องกังวลกับสิ่งต่างๆมากเกินไป ถึงกระนั้นก็คงจะดีถ้าโลกของ Python จะแก้ไขปัญหาที่มีมายาวนานนี้สักครั้ง

กล่าวได้ว่าไลบรารีคณิตศาสตร์และสถิติที่มีอยู่ใน Python นั้นแทบไม่มีใครเทียบได้ในภาษาอื่น ๆ NumPy แพร่หลายมากจนแทบจะเป็น API มาตรฐานสำหรับการทำงานของเทนเซอร์และ Pandas นำ Dataframes ที่ทรงพลังและยืดหยุ่นของ R มาสู่ Python สำหรับการประมวลผลภาษาธรรมชาติ (NLP) คุณมี NLTK ที่น่าเคารพและ SpaCy ที่รวดเร็วอย่างเห็นได้ชัด สำหรับการเรียนรู้ของเครื่องมี Scikit-learn ที่ผ่านการทดสอบการต่อสู้ และเมื่อพูดถึงการเรียนรู้เชิงลึกไลบรารีปัจจุบันทั้งหมด (TensorFlow, PyTorch, Chainer, Apache MXNet, Theano เป็นต้น) เป็นโครงการ Python ที่มีประสิทธิภาพเป็นอันดับแรก

หากคุณกำลังอ่านงานวิจัยการเรียนรู้เชิงลึกที่ล้ำสมัยเกี่ยวกับ arXiv คุณจะพบว่าการศึกษาส่วนใหญ่ที่เสนอซอร์สโค้ดทำได้ใน Python จากนั้นก็มีส่วนอื่น ๆ ของระบบนิเวศ Python ในขณะที่ IPython กลายเป็น Jupyter Notebook และมี Python เป็นศูนย์กลางน้อยลง แต่คุณจะยังพบว่าผู้ใช้ Jupyter Notebook ส่วนใหญ่และโน้ตบุ๊กส่วนใหญ่ที่แชร์ออนไลน์ใช้ Python สำหรับการปรับใช้โมเดลการมาถึงของสถาปัตยกรรมไมโครเซอร์วิสและเทคโนโลยีเช่น Seldon Core หมายความว่าการปรับใช้โมเดล Python ในการผลิตในปัจจุบันเป็นเรื่องง่ายมาก

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

วิดีโอที่เกี่ยวข้อง: การเรียนรู้ของเครื่องและ AI ถอดรหัส

ผ่านกระแสความนิยมเกี่ยวกับแมชชีนเลิร์นนิงและปัญญาประดิษฐ์แผงของเราจะพูดถึงคำจำกัดความและผลกระทบของเทคโนโลยี

C ++

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

โชคดีที่ C ++ สมัยใหม่สามารถเขียนได้อย่างน่าพอใจ (ซื่อสัตย์!) คุณมีทางเลือกของแนวทาง คุณสามารถดำน้ำที่ด้านล่างของสแต็กโดยใช้ไลบรารีเช่น CUDA ของ Nvidia เพื่อเขียนโค้ดของคุณเองที่ทำงานบน GPU ของคุณโดยตรงหรือคุณสามารถใช้ TensorFlow หรือ PyTorch เพื่อเข้าถึง API ระดับสูงที่ยืดหยุ่นได้ ทั้ง PyTorch และ TensorFlow ช่วยให้คุณสามารถโหลดโมเดลที่สร้างใน Python (หรือชุดย่อย TorchScript ของ Python ของ PyTorch) และเรียกใช้โดยตรงในรันไทม์ C ++ ทำให้คุณเข้าใกล้โลหะเปล่าสำหรับการผลิตในขณะที่รักษาความยืดหยุ่นในการพัฒนา

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

Java และภาษา JVM อื่น ๆ

กลุ่มภาษา JVM (Java, Scala, Kotlin, Clojure และอื่น ๆ ) ยังคงเป็นตัวเลือกที่ยอดเยี่ยมสำหรับการพัฒนาแอปพลิเคชัน AI คุณมีไลบรารีมากมายสำหรับทุกส่วนของไปป์ไลน์ไม่ว่าจะเป็นการประมวลผลภาษาธรรมชาติ (CoreNLP), การทำงานของเทนเซอร์ (ND4J) หรือสแต็กการเรียนรู้เชิงลึกที่เร่งด้วย GPU เต็มรูปแบบ (DL4J) นอกจากนี้คุณยังสามารถเข้าถึงแพลตฟอร์มข้อมูลขนาดใหญ่เช่น Apache Spark และ Apache Hadoop ได้อย่างง่ายดาย

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

JavaScript

คุณไม่น่าจะเรียนรู้ JavaScript เพื่อการเขียนแอปพลิเคชัน AI เพียงอย่างเดียว แต่ TensorFlow.js ของ Google ยังคงปรับปรุงและนำเสนอวิธีที่น่าสนใจในการปรับใช้ Keras และโมเดล TensorFlow ไปยังเบราว์เซอร์ของคุณหรือผ่าน Node.js โดยใช้ WebGL สำหรับการคำนวณที่เร่งด้วย GPU

อย่างไรก็ตามสิ่งหนึ่งที่เราไม่เคยเห็นมาก่อนตั้งแต่เปิดตัว TensorFlow.js คือการหลั่งไหลของนักพัฒนา JavaScript จำนวนมากที่ไหลเข้าท่วมพื้นที่ AI ฉันคิดว่าอาจเป็นเพราะระบบนิเวศของ JavaScript โดยรอบไม่มีความลึกของไลบรารีที่พร้อมใช้งานเมื่อเทียบกับภาษาเช่น Python

นอกจากนี้ในฝั่งเซิร์ฟเวอร์ไม่มีข้อได้เปรียบมากนักในการปรับใช้โมเดลกับ Node.js เมื่อเทียบกับตัวเลือก Python ตัวใดตัวหนึ่งดังนั้นเราอาจเห็นแอปพลิเคชัน AI ที่ใช้ JavaScript ยังคงใช้เบราว์เซอร์เป็นหลักในอนาคตอันใกล้ แต่นั่นยังคงสร้างโอกาสที่น่าสนใจมากมายสำหรับความสนุกสนานเช่น Emoji Scavenger Hunt

รวดเร็ว

ในบทความฉบับปีที่แล้วฉันได้กล่าวว่า Swift เป็นภาษาที่ต้องจับตามอง ปีนี้แบ่งเป็นหกอันดับแรกของฉัน เกิดอะไรขึ้น? Swift สำหรับ TensorFlow การผูกคุณลักษณะล่าสุดและยิ่งใหญ่ที่สุดของ TensorFlow และเวทมนตร์แห่งความมืดที่พิมพ์เต็มรูปแบบและไม่มีรอยต่อที่ช่วยให้คุณสามารถนำเข้าไลบรารี Python ได้ราวกับว่าคุณใช้ Python ในตอนแรก

ทีม Fastai กำลังทำงานกับไลบรารียอดนิยมเวอร์ชัน Swift และเราสัญญาว่าจะเพิ่มประสิทธิภาพเพิ่มเติมมากมายในการสร้างและใช้งานโมเดลด้วยการย้ายเทนเซอร์สมาร์ทจำนวนมากไปยังคอมไพเลอร์ LLVM ตอนนี้พร้อมผลิตหรือยัง ไม่จริง แต่มันอาจชี้ทางไปสู่การพัฒนาการเรียนรู้เชิงลึกรุ่นต่อไปดังนั้นคุณควรตรวจสอบว่าเกิดอะไรขึ้นกับ Swift

ภาษา R

R อยู่ที่ด้านล่างสุดของรายการและมีแนวโน้มลดลง R เป็นภาษาที่นักวิทยาศาสตร์ข้อมูลชื่นชอบ อย่างไรก็ตามโปรแกรมเมอร์คนอื่น ๆ มักพบว่า R มีความสับสนเล็กน้อยเนื่องจากแนวทางดาต้าเฟรมเป็นศูนย์กลาง หากคุณมีกลุ่มนักพัฒนา R โดยเฉพาะคุณควรใช้การผสานรวมกับ TensorFlow, Keras หรือ H2O สำหรับการวิจัยการสร้างต้นแบบและการทดลอง แต่ฉันลังเลที่จะแนะนำ R สำหรับการใช้งานจริงหรือสำหรับการพัฒนากรีนฟิลด์เนื่องจาก ข้อกังวลด้านประสิทธิภาพและการปฏิบัติงาน ในขณะที่คุณสามารถเขียนโค้ด R ที่มีประสิทธิภาพซึ่งสามารถปรับใช้บนเซิร์ฟเวอร์ที่ใช้งานจริงได้ แต่เกือบจะง่ายกว่าที่จะใช้ R ต้นแบบนั้นและเขียนใหม่ใน Java หรือ Python

ตัวเลือกการเขียนโปรแกรม AI อื่น ๆ

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

ลัวะ

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

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

จูเลีย

Julia เป็นภาษาการเขียนโปรแกรมประสิทธิภาพสูงที่มุ่งเน้นไปที่การคำนวณเชิงตัวเลขซึ่งทำให้เข้ากันได้ดีกับโลกของ AI ที่เน้นคณิตศาสตร์ แม้ว่าตัวเลือกภาษาจะไม่ได้รับความนิยมในตอนนี้ แต่ Wrapper เช่น TensorFlow.jl และ Mocha (ได้รับอิทธิพลอย่างมากจาก Caffe) ให้การสนับสนุนการเรียนรู้เชิงลึกที่ดี หากคุณไม่สนใจระบบนิเวศที่ค่อนข้างเล็กและคุณต้องการได้รับประโยชน์จากการมุ่งเน้นของ Julia ในการคำนวณประสิทธิภาพสูงให้ง่ายและรวดเร็ว Julia ก็น่าจะคุ้มค่าที่จะดู