TensorFlow กับ Theano กับ Torch กับ Keras: ห้องสมุดการเรียนรู้เชิงลึก
ปัญญาประดิษฐ์ได้รับความนิยมเพิ่มขึ้นตั้งแต่ปี 2016 โดยบริษัทใหญ่ 20% ใช้ AI ในธุรกิจของตน (McKinsey รายงาน, 2018) ตามรายงานฉบับเดียวกัน AI สามารถสร้างมูลค่ามหาศาลในอุตสาหกรรมต่างๆ ได้ ในด้านธนาคาร ศักยภาพของ AI อยู่ที่ประมาณ $300 พันล้าน ส่วนค้าปลีกก็พุ่งสูงถึง $600 พันล้าน
เพื่อปลดล็อกคุณค่าที่เป็นไปได้ของ AI บริษัทต่างๆ จะต้องเลือกกรอบการเรียนรู้เชิงลึกที่เหมาะสม ในบทช่วยสอนนี้ คุณจะได้เรียนรู้เกี่ยวกับไลบรารีต่างๆ ที่พร้อมใช้งานเพื่อดำเนินงานการเรียนรู้เชิงลึก ห้องสมุดบางแห่งมีมานานหลายปีแล้ว ในขณะที่ห้องสมุดใหม่อย่าง TensorFlow ได้เปิดตัวในช่วงไม่กี่ปีที่ผ่านมา
8 ไลบรารี / กรอบการเรียนรู้เชิงลึกที่ดีที่สุด
ในรายการนี้ เราจะเปรียบเทียบเฟรมเวิร์กการเรียนรู้เชิงลึกชั้นนำ ทั้งหมดเป็นโอเพ่นซอร์สและเป็นที่นิยมในชุมชนนักวิทยาศาสตร์ข้อมูล นอกจากนี้ เรายังจะเปรียบเทียบ ML ยอดนิยมในฐานะผู้ให้บริการอีกด้วย
ไฟฉาย
Torch เป็นไลบรารีการเรียนรู้ของเครื่องโอเพ่นซอร์สรุ่นเก่า เปิดตัวครั้งแรกเมื่อ 15 ปีที่แล้ว เป็นภาษาโปรแกรมหลักคือ LUA แต่มีการใช้งานในภาษา C เมื่อเปรียบเทียบ PyTorch กับ TensorFlow จะพบว่ารองรับไลบรารีขนาดใหญ่สำหรับอัลกอริทึมการเรียนรู้ของเครื่อง รวมถึงการเรียนรู้เชิงลึก รองรับการใช้งาน CUDA สำหรับการคำนวณแบบขนาน
เครื่องมือการเรียนรู้เชิงลึกของ Torch ถูกใช้โดยห้องปฏิบัติการชั้นนำส่วนใหญ่ เช่น Facebook, Google, Twitter, Nvidia และอื่นๆ ทอร์ชมีห้องสมุดอยู่ใน Python ชื่อ ไพทอร์ช
สรุป.net
Infer.net ได้รับการพัฒนาและดูแลโดย MicrosoftInfer.net เป็นไลบรารีที่เน้นด้านสถิติเบย์เป็นหลัก Infer.net เป็นเครื่องมือสร้างภาพสำหรับการเรียนรู้เชิงลึกที่ออกแบบมาเพื่อมอบอัลกอริทึมล้ำสมัยสำหรับการสร้างแบบจำลองความน่าจะเป็นให้กับผู้ปฏิบัติงาน ไลบรารีประกอบด้วย เครื่องมือวิเคราะห์ เช่น การวิเคราะห์แบบเบย์เซียน, ห่วงโซ่มาร์คอฟที่ซ่อนอยู่, การจัดกลุ่ม
Keras
เคราสเป็น Python กรอบการเรียนรู้เชิงลึก เป็นห้องสมุดที่สะดวกในการสร้างอัลกอริทึมการเรียนรู้เชิงลึก ข้อดีของ Keras คือใช้แบบเดียวกัน Python รหัสเพื่อทำงานบน CPU หรือ GPU นอกจากนี้ สภาพแวดล้อมการเขียนโค้ดยังบริสุทธิ์และช่วยให้สามารถฝึกอบรมอัลกอริธึมที่ล้ำสมัยสำหรับการมองเห็นคอมพิวเตอร์ การจดจำข้อความ และอื่นๆ
Keras ได้รับการพัฒนาโดย François Chollet นักวิจัยของ Google Keras ใช้ในองค์กรที่มีชื่อเสียงเช่น CERN, Yelp, Square หรือ Google Netflixและอูเบอร์
Theano
Theano เป็นไลบรารีการเรียนรู้เชิงลึกที่พัฒนาโดยมหาวิทยาลัยมอนทรีออลในปี 2007 เมื่อเปรียบเทียบ Theano กับ TensorFlow ไลบรารีนี้ให้การคำนวณที่รวดเร็วและสามารถทำงานได้ทั้งบน CPU และ GPU Theano ได้รับการพัฒนาขึ้นเพื่อฝึกอัลกอริทึมเครือข่ายประสาทเทียมเชิงลึก
Microsoft ชุดเครื่องมือความรู้ความเข้าใจ (CNTK)
Microsoft toolkit ซึ่งเดิมเรียกว่า CNTK เป็นไลบรารีการเรียนรู้เชิงลึกที่พัฒนาโดย Microsoft. ตามที่ Microsoftห้องสมุดเป็นหนึ่งในห้องสมุดที่เร็วที่สุดในตลาด Microsoft toolkit นั้นเป็นไลบรารีโอเพ่นซอร์ส Microsoft มีการใช้กันอย่างแพร่หลายสำหรับผลิตภัณฑ์เช่น Skype, Cortana, Bing และ Xbox ชุดเครื่องมือนี้พร้อมใช้งานทั้งใน Python และ C++.
MX เน็ต
MXnet เป็นไลบรารีการเรียนรู้เชิงลึกล่าสุด สามารถเข้าถึงได้ด้วยภาษาการเขียนโปรแกรมหลายภาษารวมถึง C++จูเลีย Python และ R. MXNet สามารถกำหนดค่าให้ทำงานบนทั้ง CPU และ GPU ได้ MXNet ประกอบด้วยสถาปัตยกรรมการเรียนรู้เชิงลึกที่ทันสมัย เช่น Convolutional Neural Network และหน่วยความจำระยะยาว MXNet ถูกสร้างมาเพื่อทำงานใน harmony ด้วยโครงสร้างพื้นฐานคลาวด์แบบไดนามิก ผู้ใช้หลักของ MXNet คือ Amazon
Caffe
Caffe เป็นห้องสมุดที่สร้างโดย Yangqing Jia เมื่อตอนที่เขาเป็นนักศึกษาปริญญาเอกที่ Berkeley เมื่อเปรียบเทียบ Caffe กับ TensorFlow Caffe จะถูกเขียนไว้ C++ และสามารถประมวลผลได้ทั้งบน CPU และ GPU การใช้งานหลักของ Caffe คือ Convolutional Neural Network แม้ว่าในปี 2017 Facebook ได้ขยาย Caffe ด้วยสถาปัตยกรรมการเรียนรู้เชิงลึกเพิ่มเติม รวมถึง Recurrent Neural Network Caffe ใช้โดยนักวิชาการและบริษัทสตาร์ทอัพ รวมถึงบริษัทขนาดใหญ่บางแห่ง เช่น Yahoo!
TensorFlow
TensorFlow เป็นโครงการโอเพ่นซอร์สของ Google TensorFlow เป็นห้องสมุดการเรียนรู้เชิงลึกที่มีชื่อเสียงที่สุดในปัจจุบัน เปิดตัวสู่สาธารณะในช่วงปลายปี 2015
TensorFlow ได้รับการพัฒนาในปี C++ และมีความสะดวก Python API แม้ว่า C++ API ก็มีให้เช่นกัน บริษัทชั้นนำอย่าง Airbus, Google, IBM และอื่นๆ ที่ใช้ TensorFlow เพื่อสร้างอัลกอริทึมการเรียนรู้เชิงลึก
TensorFlow กับ Theano กับ Torch กับ Keras กับ infer.net กับ CNTK กับ MXNet กับ Caffe: ความแตกต่างที่สำคัญ
ห้องสมุด | ระบบปฏิบัติการ | เขียนใน | การสนับสนุน Cuda | การดำเนินการแบบขนาน | มีโมเดลที่ผ่านการฝึกอบรม | ร.น. | ซีเอ็นเอ็น |
---|---|---|---|---|---|---|---|
ไฟฉาย | ลินุกซ์ macOS, Windows | Lua | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
Infer.Net | ลินุกซ์ macOS, Windows | Visual Studio | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ |
Keras | ลินุกซ์ macOS, Windows | Python | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
Theano | ข้ามแพลตฟอร์ม | Python | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
TensorFlow | ลินุกซ์ macOS, Windows, Android | C++, Python, CUDA | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
ชุดเครื่องมือทางปัญญาของไมโครซอฟต์ | ลินุกซ์ Windows, Mac พร้อมนักเทียบท่า | C++ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
Caffe | ลินุกซ์ macOS, Windows | C++ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
MX เน็ต | ลินุกซ์ Windows, macOS, AndroidIOS, Javascript | C++ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
คำตัดสิน
TensorFlow เป็นไลบรารีที่ดีที่สุดเนื่องจากสร้างขึ้นเพื่อให้ทุกคนเข้าถึงได้ ไลบรารี TensorFlow รวม API ต่างๆ เพื่อสร้างสถาปัตยกรรมการเรียนรู้เชิงลึก เช่น CNN หรือ RNN TensorFlow ใช้การคำนวณแบบกราฟ ซึ่งช่วยให้นักพัฒนาสามารถสร้างภาพการสร้างเครือข่ายประสาทเทียมได้ด้วย เทนเซอร์บอร์ดเครื่องมือนี้มีประโยชน์ในการดีบักโปรแกรม ในที่สุด Tensorflow ก็ถูกสร้างขึ้นมาเพื่อใช้งานในระดับขนาดใหญ่ โดยทำงานบน CPU และ GPU
Tensorflow ดึงดูดความนิยมสูงสุดบน GitHub เมื่อเปรียบเทียบกับไลบรารีการเรียนรู้เชิงลึกอื่นๆ
การเปรียบเทียบการเรียนรู้ของเครื่องในรูปแบบบริการ
ต่อไปนี้เป็น 4 DL ยอดนิยมในฐานะผู้ให้บริการ
Google Cloud ML
Google จัดเตรียมโมเดลที่ผ่านการฝึกอบรมล่วงหน้าสำหรับนักพัฒนาซึ่งมีอยู่ใน Cloud AutoML โซลูชันนี้มีไว้สำหรับนักพัฒนาที่ไม่มีพื้นฐานที่แข็งแกร่งในด้าน เรียนรู้เครื่อง- นักพัฒนาซอฟต์แวร์สามารถใช้โมเดลที่ได้รับการฝึกอบรมล่วงหน้าของ Google ที่ล้ำสมัยกับข้อมูลของตนได้ ช่วยให้นักพัฒนาสามารถฝึกอบรมและประเมินโมเดลใดๆ ได้ภายในเวลาเพียงไม่กี่นาที
ปัจจุบัน Google ให้บริการ REST API สำหรับคอมพิวเตอร์วิทัศน์ การรู้จำเสียง การแปล และ NLP
การใช้ Google Cloudคุณสามารถฝึกเฟรมเวิร์กแมชชีนเลิร์นนิงที่สร้างบน TensorFlow, Scikit-learn, XGBoost หรือ Keras ได้ Google Cloud การเรียนรู้ของเครื่องจะฝึกโมเดลต่างๆ บนคลาวด์
ข้อดีของการใช้ระบบคลาวด์คอมพิวติ้งของ Google คือความเรียบง่ายในการนำการเรียนรู้ของเครื่องไปใช้ในการผลิต ไม่จำเป็นต้องตั้งค่าคอนเทนเนอร์ Docker นอกจากนี้ คลาวด์ยังดูแลโครงสร้างพื้นฐานอีกด้วย โดยจะทราบวิธีการจัดสรรทรัพยากรด้วย CPU, GPU และ TPU ทำให้การฝึกอบรมเร็วขึ้นด้วยการคำนวณแบบขนาน
AWS SageMaker
คู่แข่งรายใหญ่ของ Google Cloud is Amazon เมฆ, AWS. Amazon ได้พัฒนา Amazon SageMaker ช่วยให้นักวิทยาศาสตร์ข้อมูลและนักพัฒนาสามารถสร้าง ฝึกอบรม และนำโมเดลแมชชีนเลิร์นนิงใดๆ ก็ตามมาใช้งานจริงได้
SageMaker มีให้บริการใน Jupyter Notebook และประกอบด้วยไลบรารีการเรียนรู้ของเครื่องที่ใช้มากที่สุด, TensorFlow, MXNet, Scikit-learn และอื่นๆ อีกมากมาย โปรแกรมที่เขียนด้วย SageMaker จะทำงานโดยอัตโนมัติในคอนเทนเนอร์ Docker Amazon จัดการการจัดสรรทรัพยากรเพื่อเพิ่มประสิทธิภาพการฝึกอบรมและการปรับใช้
Amazon มอบ API ให้กับนักพัฒนาเพื่อเพิ่มความฉลาดให้กับแอปพลิเคชันของพวกเขา ในบางโอกาส ไม่จำเป็นต้องคิดค้นสิ่งใหม่ๆ ด้วยการสร้างโมเดลใหม่ตั้งแต่ต้น ในขณะที่มีโมเดลที่ได้รับการฝึกล่วงหน้าอันทรงพลังในระบบคลาวด์ Amazon ให้บริการ API สำหรับการมองเห็นคอมพิวเตอร์ แชทบอทสนทนา และบริการด้านภาษา:
API หลักๆ ที่มีอยู่สามรายการได้แก่:
- Amazon การรับรู้: ให้การจดจำรูปภาพและวิดีโอแก่แอป
- Amazon เข้าใจ: ดำเนินการขุดข้อความและประมวลผลภาษาประสาทเพื่อทำให้กระบวนการตรวจสอบความถูกต้องตามกฎหมายของเอกสารทางการเงินเป็นไปโดยอัตโนมัติ
- Amazon เล็กซ์: เพิ่มแชทบอทลงในแอป
Azure สตูดิโอการเรียนรู้ของเครื่อง
อาจเป็นหนึ่งในแนวทางที่เป็นมิตรที่สุดในการเรียนรู้ของเครื่องคือ Azure สตูดิโอการเรียนรู้ของเครื่อง ข้อได้เปรียบที่สำคัญของโซลูชันนี้คือไม่จำเป็นต้องมีความรู้ด้านการเขียนโปรแกรมมาก่อน
Microsoft Azure Machine Learning Studio เป็นเครื่องมือการทำงานร่วมกันแบบลากและวางเพื่อสร้าง ฝึกอบรม ประเมินผล และปรับใช้โซลูชันการเรียนรู้ของเครื่อง โดยสามารถปรับใช้โมเดลนี้ได้อย่างมีประสิทธิภาพในรูปแบบบริการเว็บและใช้ในแอปต่างๆ เช่น Excel
Azure อินเทอร์เฟซการเรียนรู้ของเครื่องเป็นแบบโต้ตอบ ช่วยให้ผู้ใช้สร้างแบบจำลองได้เพียงแค่ลากและวางองค์ประกอบต่างๆ อย่างรวดเร็ว
เมื่อโมเดลพร้อม นักพัฒนาสามารถบันทึกและพุชโมเดลได้ Azure รูปภาพ or Azure ตลาด
Azure การเรียนรู้ของเครื่องสามารถรวมเข้ากับ R หรือ Python แพ็คเกจในตัวแบบกำหนดเอง
IBM Watson ML
Watson Studio ช่วยลดความซับซ้อนของโครงการข้อมูลด้วยกระบวนการที่มีประสิทธิภาพซึ่งช่วยให้ดึงคุณค่าและข้อมูลเชิงลึกจากข้อมูลเพื่อช่วยให้ธุรกิจฉลาดขึ้นและรวดเร็วยิ่งขึ้น สตูดิโอ Watson นำเสนอวิทยาศาสตร์ข้อมูลการทำงานร่วมกันและสภาพแวดล้อมการเรียนรู้ของเครื่องที่ใช้งานง่ายสำหรับการสร้างและฝึกอบรมโมเดล การเตรียมและวิเคราะห์ข้อมูล และแบ่งปันข้อมูลเชิงลึกทั้งหมดในที่เดียว Watson Studio ใช้งานง่ายด้วยการลากและวางโค้ด
สตูดิโอ Watson รองรับเฟรมเวิร์กยอดนิยมบางส่วน เช่น Tensorflow, Keras, Pytorch, Caffe และสามารถนำอัลกอริธึมการเรียนรู้เชิงลึกไปใช้กับ GPU ล่าสุดจาก Nvidia เพื่อช่วยเร่งการสร้างแบบจำลอง
คำตัดสิน
ในมุมมองของเรา โซลูชันคลาวด์ของ Google ถือเป็นโซลูชันที่แนะนำมากที่สุด โซลูชันคลาวด์ของ Google มอบราคาที่ต่ำกว่า AWS อย่างน้อย 30% สำหรับโซลูชันการจัดเก็บข้อมูลและการเรียนรู้ของเครื่อง Google ทำหน้าที่ได้ดีเยี่ยมในการทำให้ AI เป็นประชาธิปไตย โดยได้พัฒนาภาษาโอเพ่นซอร์ส TensorFlow ที่ได้รับการปรับให้เหมาะสม คลังข้อมูล การเชื่อมต่อ มอบเครื่องมืออันมหาศาลตั้งแต่การแสดงภาพข้อมูล การวิเคราะห์ข้อมูล ไปจนถึงการเรียนรู้ของเครื่อง นอกจากนี้ Google Console ยังออกแบบตามหลักสรีรศาสตร์และครอบคลุมมากกว่า AWS หรือมาก Windows.