TensorFlow เป็นห้องสมุดการเรียนรู้ของเครื่องที่สมบูรณ์หรือไม่


11

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

ในระยะสั้นฉันต้องการทราบว่า TensorFlow สนับสนุนอัลกอริทึมการเรียนรู้ใด มันเป็นแค่การเรียนรู้อย่างลึกซึ้งหรืออะไรมากกว่านั้น?


1
มีการใช้เครื่องเวกเตอร์สนับสนุนใน TensorFlow: github.com/AidanGG/tensorflow_tmva/wiki/Support-Vector-Machine
Neil Slater

3
เพียงเพื่อให้แน่ใจว่า: TensorFlow ไม่ใช่ห้องสมุดการเรียนรู้ที่ลึกซึ้ง Keras (ซึ่งสามารถใช้ TensorFlow เป็น Backend) ได้เช่นไลบรารี TensorFlow เป็นวิธีที่ชาญฉลาดในการจัดการการคำนวณขนาดใหญ่ (ใช้กราฟการคำนวณ) เพื่อดำเนินการกับฮาร์ดแวร์หลายตัว (CPU, GPU และอื่น ๆ )
Robin

คำตอบ:


15

นี่เป็นการทำให้ใหญ่เกินไป แต่ในปัจจุบันมีห้องสมุดการเรียนรู้เครื่องสองประเภท:

  1. การเรียนรู้เชิงลึก (CNN, RNN, อวนที่เชื่อมต่ออย่างเต็มที่, โมเดลเชิงเส้น)
  2. ทุกอย่างอื่น (SVM, GBMs, ป่าสุ่ม, Naive Bayes, K-NN, ฯลฯ )

เหตุผลก็คือการเรียนรู้อย่างลึกซึ้งนั้นมีความเข้มข้นของการคำนวณมากกว่าวิธีการฝึกอบรมแบบอื่น ๆ มากกว่าเดิมดังนั้นจึงต้องใช้ความเชี่ยวชาญอย่างมากของห้องสมุด (เช่นการใช้ GPU และความสามารถในการกระจาย) หากคุณใช้ Python และกำลังมองหาแพ็กเกจที่มีอัลกอริธึมกว้างที่สุดลอง scikit-learn ในความเป็นจริงหากคุณต้องการใช้การเรียนรู้อย่างลึกซึ้งและวิธีการแบบดั้งเดิมคุณจะต้องใช้ห้องสมุดมากกว่าหนึ่งแห่ง ไม่มีแพ็คเกจ "สมบูรณ์"


1
คำตอบนี้ยังคงใช้ได้อีกสองปีต่อมาหรือไม่ ดูเหมือนว่า TensorFlow เติบโตขึ้นมากมายตั้งแต่นั้นมา
john sullivan

7

TensorFlow มีไว้สำหรับการเรียนรู้อย่างลึกซึ้งเช่นโครงข่ายประสาทเทียมที่มีเลเยอร์และทอพอโลยีแปลก ๆ มากมาย

แค่นั้นแหละ. มันเป็นทางเลือกแทนTheanoแต่พัฒนาโดย Google

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

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

แก้ไข:ลืมที่จะพูดถึงว่าแน่นอน SVMs สามารถมองเห็นเป็นประเภทของเครือข่ายประสาทดังนั้นเห็นได้ชัดว่าคุณสามารถฝึกอบรม SVM โดยใช้เครื่องมือเพิ่มประสิทธิภาพ TensorFlow แต่ TensorFlow นั้นมาพร้อมกับเครื่องมือเพิ่มประสิทธิภาพแบบไล่ระดับสีซึ่งค่อนข้างโง่ที่จะใช้ในการฝึกอบรม SVM เว้นแต่คุณจะมีข้อสังเกตมากมายเนื่องจากมีเครื่องมือเพิ่มประสิทธิภาพเฉพาะสำหรับ SVM ที่ไม่ติดขัดในท้องถิ่น

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


1
Theano ไม่ได้พัฒนาโดย Google ตามเว็บไซต์ของพวกเขามันคือ“ การพัฒนาเป็นหลักโดยนักวิชาการ” Tensorflow ได้รับการพัฒนาโดย Google
dantiston

1
@dantiston ใช่ฉันรู้ ฉันหมายถึงว่า "TensorFlow เป็นทางเลือกแทน Theano และ TensorFlow พัฒนาโดย Google" ฉันหมายถึง TensorFlow ไม่ใช่ Theano ถ้อยคำไม่ดีขอโทษ
Ricardo Cruz

5

Ryan Zotti เสนอคำตอบที่ดี แต่นี่เป็นการเปลี่ยนแปลง ด้วยการเพิ่มป่าสุ่ม , การไล่ระดับสีแบบไล่ระดับและวิธีเบย์ไปยังTensorFlowมันจะมุ่งหน้าไปสู่การเป็นวิธีการแก้ปัญหาแบบครบวงจร ขั้นตอนวิธีการแบบดั้งเดิมมากขึ้นมีการระบุไว้ที่นี่ TensorFlow มีสัญญาเป็นพิเศษเพราะมันถูกออกแบบมาเพื่อขยายขนาดและรองรับการทำงานของ GPU อย่างไรก็ตามscikit learnเป็นร้านค้าครบวงจรแบบดั้งเดิมที่คุณสามารถค้นหาอัลกอริธึมมาตรฐานมากมาย พวกเขามักจะไม่ล่าสุดและยิ่งใหญ่ที่สุดดังนั้นคุณอาจต้องการห้องสมุดเฉพาะเช่นกัน

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