5 อันดับ Deep Learning Frameworks แห่งปี 2021

Chonlarnatt P. (Dong)
Super AI Engineer
Published in
3 min readMar 27, 2021

สาขาการเรียนรู้เชิงลึก (Deep Learning) เป็นเรื่องที่น่าตื่นเต้นมาก ตั้งแต่ที่มีแอปพลิเคชันการเรียนรู้แบบเสริมกำลัง (Reinforcement Learning) ไปจนถึงการจำแนกภาพและการสร้างเสียงมีพื้นที่ใช้งานจำนวนมาก ในขณะที่เราทำงานในโครงการที่น่าตื่นเต้นเหล่านี้เรามักต้องการ “จ้าง” งานที่น่าเบื่อเช่นการเขียนแบบจำลองอัลกอริทึมไปยังกรอบการเรียนรู้เชิงลึกแบบต่าง ๆ

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

TensorFlow คืออะไร?
TensorFlow เป็นแพลตฟอร์มแมชชีนเลิร์นนิงแบบโอเพนซอร์สที่เน้นเฉพาะในเครือข่ายประสาทเทียมที่พัฒนาโดยทีม Google Brain แม้ว่าในตอนแรกจะถูกใช้เพื่อวัตถุประสงค์ภายใน แต่ Google ได้เปิดตัวไลบรารีภายใต้ Apache License 2.0 ในเดือนพฤศจิกายน 2015 ซึ่งทำให้เป็นไลบรารีโอเพ่นซอร์ส แม้ว่ากรณีการใช้งานของ TensorFlow จะไม่ จำกัด เฉพาะแอปพลิเคชันแมชชีนเลิร์นนิง แต่การเรียนรู้ของเครื่องเป็นสาขาที่เราเห็นจุดแข็งของ TensorFlow

ภาษาการเขียนโปรแกรมสองภาษาที่มีความเสถียรและเป็นทางการ TensorFlow APIs คือ Python และ C นอกจากนี้ C ++, Java, JavaScript, Go และ Swift ยังเป็นภาษาโปรแกรมอื่น ๆ ที่นักพัฒนาอาจพบความเข้ากันได้ของ TensorFlow ที่ จำกัด เฉพาะในวงกว้าง ในที่สุดก็มี TensorFlow API ของบุคคลที่สามสำหรับ C #, Haskell, Julia, MATLAB, R, Scala, Rust, OCaml และ Crystal

โดยเฉพาะอย่างยิ่งกับ TensorFlow 2.0 Google ได้ปรับปรุงความเป็นมิตรต่อผู้ใช้ของ TensorFlow API อย่างมาก นอกจากนี้ทีมงาน TensorFlow ยังประกาศว่าพวกเขาไม่ได้ตั้งใจที่จะนำเสนอการเปลี่ยนแปลงที่สำคัญอื่นใด ดังนั้นทักษะที่คุณได้รับใน TensorFlow 2.0 จะยังคงมีความเกี่ยวข้องไปอีกนาน

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

แต่เรามาพูดถึงกรอบการเรียนรู้เชิงลึกอื่น ๆ :

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

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

TensorFlow
Keras
PyTorch
Apache MXNet
Microsoft Cognitive Toolkit

เรามาสรุปสั้น ๆ กัน:

Keras
Keras เป็นไลบรารีเครือข่ายประสาทแบบโอเพนซอร์สที่เขียนด้วย Python ซึ่งสามารถทำงานบน TensorFlow, Microsoft Cognitive Toolkit, Theano, R และ PlaidML François Chollet วิศวกรของ Google ได้ออกแบบ Keras เพื่อให้สามารถทดลองกับเครือข่ายประสาทเทียมได้อย่างรวดเร็ว เป็นมิตรกับผู้ใช้มากเป็นโมดูลาร์และขยายได้ Keras ยังมีความภาคภูมิใจในความเรียบง่ายยืดหยุ่นและทรงพลัง เนื่องจากคุณสมบัติเหล่านี้ Keras จึงถูกมองว่าเป็นคลังการเรียนรู้เชิงลึกของผู้มาใหม่

Keras ควรถือเป็นตัวเลือกเสริมสำหรับ TensorFlow แทนที่จะเป็นไลบรารีของคู่แข่งเนื่องจากอาศัยกรอบการเรียนรู้เชิงลึกที่มีอยู่ ในปี 2017 ทีม TensorFlow ของ Google ตกลงที่จะสนับสนุน Keras ในไลบรารีหลักของตน ด้วย TensorFlow 2.0 Keras API มีความคล่องตัวและบูรณาการมากขึ้นซึ่งช่วยให้สร้างเครือข่ายประสาทเทียมได้ง่ายขึ้น

เว็บไซต์ทางการของ Keras: www.keras.io

PyTorch
PyTorch เป็นไลบรารีเครือข่ายประสาทแบบโอเพนซอร์สที่พัฒนาและดูแลโดย AI Research Lab (FAIR) ของ Facebook เป็นหลักและเปิดตัวครั้งแรกในเดือนตุลาคม 2559 FAIR สร้าง PyTorch ที่ด้านบนของไลบรารี Torch ซึ่งเป็นไลบรารีการเรียนรู้ของเครื่องโอเพนซอร์สซึ่งเป็นกรอบการคำนวณทางวิทยาศาสตร์ และภาษาสคริปต์ที่ใช้ภาษาโปรแกรม Lua ซึ่งเริ่มแรกออกแบบโดย Ronan Collobert, Samy Bengio และ Johnny Mariéthoz

เนื่องจาก PyTorch ได้รับการพัฒนาโดย Facebook และมีอินเทอร์เฟซที่ใช้งานง่ายความนิยมจึงได้รับแรงผลักดันในช่วงไม่กี่ปีที่ผ่านมาโดยเฉพาะในแวดวงวิชาการ PyTorch เป็นคู่แข่งหลักของ TensorFlow ก่อนหน้า TensorFlow 2.0 แม้จะมีปัญหาเรื่องความง่ายในการใช้งานของ API แต่ TensorFlow ยังคงได้รับความนิยมเนื่องจากการสนับสนุนจากชุมชนประสิทธิภาพการผลิตและโซลูชันกรณีการใช้งานเพิ่มเติม นอกจากนี้การปรับปรุงล่าสุดด้วย TensorFlow 2.0 ได้แนะนำการแก้ไขข้อบกพร่องของ TensorFlow 1.x. ดังนั้น TensorFlow จึงมีแนวโน้มที่จะรักษาตำแหน่งไว้ได้แม้ว่า PyTorch จะได้รับความนิยมเพิ่มขึ้นก็ตาม

เว็บไซต์ทางการของ PyTorch: www.pytorch.org

Apache MXNet
MXNet เป็นกรอบการเรียนรู้เชิงลึกแบบโอเพนซอร์สที่นำเสนอโดย Apache Foundation เป็นกรอบการเรียนรู้เชิงลึกที่ยืดหยุ่นปรับขนาดได้และรวดเร็ว มีการสนับสนุนในภาษาการเขียนโปรแกรมหลายภาษา (รวมถึง C ++, Python, Java, Julia, MATLAB, JavaScript, Go, R, Scala, Perl และ Wolfram Language)

MXNet ใช้และสนับสนุนโดย Amazon, Intel, Baidu, Microsoft, Wolfram Research, Carnegie Mellon, MIT, University of Washington แม้ว่าสถาบันและ บริษัท เทคโนโลยีที่เคารพนับถือหลายแห่งจะสนับสนุนโครงการ MXNet แต่การสนับสนุนจากชุมชนของ MXNet นั้นมี จำกัด ดังนั้นจึงยังคงได้รับความนิยมน้อยกว่าเมื่อเทียบกับ TensorFlow, Keras และ PyTorch

เว็บไซต์อย่างเป็นทางการของ MXNet: mxnet.apache.org

CNTK (Microsoft Cognitive Toolkit)
Microsoft เปิดตัว CNTK เป็นเฟรมเวิร์กการเรียนรู้เชิงลึกแบบโอเพนซอร์สในเดือนมกราคม 2559 CNTK หรือที่เรียกว่า The Microsoft Cognitive Toolkit ได้รับการสนับสนุนในภาษาโปรแกรมยอดนิยมเช่น Python, C ++, C # และ Java Microsoft ใช้การใช้ CNTK ในแอปพลิเคชันและผลิตภัณฑ์ยอดนิยมเช่น Skype, Xbox และ Cortana โดยเฉพาะอย่างยิ่งสำหรับการจดจำเสียงการเขียนด้วยลายมือและภาพ อย่างไรก็ตามในเดือนมกราคม 2019 Microsoft ได้หยุดปล่อยการอัปเดตใหม่ให้กับ Microsoft Cognitive Toolkit ดังนั้น CNTK จึงถือว่าเลิกใช้งาน

ในการติดตั้งและนำเข้า CNTK (น่าเสียดายที่ซับซ้อนกว่านี้มากและเวอร์ชันด้านล่างนี้ใช้สำหรับโน้ตบุ๊ก Google Colab):

เว็บไซต์ทางการของ Microsoft Cognitive Toolkit: www.cntk.ai

การประเมินขั้นสุดท้าย
ในปี 2020 มีความปลอดภัยที่จะระบุว่าการแข่งขันจริงกำลังเกิดขึ้นระหว่าง TensorFlow และ PyTorch แม้ว่า PyTorch จะทำงานได้อย่างยอดเยี่ยม แต่ฉันก็ยังคงวางเดิมพันกับ TensorFlow ด้วยเหตุผลหลายประการ:

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

การจัดลำดับกำลังของกรอบการเรียนรู้เชิงลึก
ตอนนี้มันล้าสมัยไปหน่อย แต่ในปี 2018 Jeff Hale ได้พัฒนาการจัดอันดับพลังงานที่สวยงามสำหรับกรอบการเรียนรู้เชิงลึกในตลาด เขาชั่งน้ำหนักการกล่าวถึงที่พบในรายการงานออนไลน์บทความที่เกี่ยวข้องและโพสต์บล็อกและใน GitHub ผลลัพธ์ของเขายังสนับสนุนการประเมินข้างต้น:

จากคะแนนเฉลี่ยถ่วงน้ำหนักของกรอบการเรียนรู้เชิงลึกเราสามารถวาดแผนภูมิแท่งคะแนนพลังได้ดังนี้:

รายละเอียดก็ตามในกราฟเลย สำหรับท่านที่สนใจก็สามารถศึกษาเพิ่มเติมได้ น่าเรียนรู้กันเลยทีเดียว

--

--