ความแตกต่างระหว่าง Naive Bayes กับ Recurrent Neural Network (LSTM)


8

ฉันต้องการที่จะทำการวิเคราะห์ความเชื่อมั่นในข้อความได้ผ่านหลายบทความบางคนกำลังใช้"Naive Bayes"และอื่น ๆ คือ"Recurrent Neural Network (LSTM)"ในทางกลับกันฉันได้เห็นห้องสมุดหลามสำหรับการวิเคราะห์ความเชื่อมั่นว่า คือ nltk มันใช้"Naive Bayes"ทุกคนสามารถอธิบายความแตกต่างระหว่างการใช้สองคนนี้ได้อย่างไร

ฉันได้ผ่านโพสต์นี้ไปแล้ว แต่ไม่ชัดเจนเกี่ยวกับพวกเขาทั้งคู่ ..

ความแตกต่างระหว่างเครือข่าย Bayes, โครงข่ายประสาทเทียม, ต้นไม้ตัดสินใจและมุ้ง Petri

คำตอบ:


14

เกี่ยวกับความแตกต่างระหว่าง Naive Bayes และ Recural Neural Networks

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

สองรูปแบบที่สามารถแก้ปัญหานี้คือตัวจําแนก Naive Bayes และ Recurrent Neural Networks

Naive Bayes
ในการใช้ตัวจําแนกนี้สําหรับการวิเคราะห์ข้อความคุณจะประมวลผลข้อความล่วงหน้า ( ถุงคำ + tf-tdf ) เพื่อให้คุณสามารถแปลงเป็นเวกเตอร์ที่มีค่าตัวเลข เวกเตอร์เหล่านี้ทำหน้าที่เป็นอินพุตของโมเดล NB
ตัวจําแนกนี้ถือว่าคุณสมบัติของคุณ (คุณลักษณะของเวกเตอร์ที่เราผลิต) นั้นเป็นอิสระจากกัน เมื่อข้อสมมตินี้เก็บไว้มันเป็นลักษณนามที่แข็งแกร่งมากที่ต้องใช้ข้อมูลน้อยมากในการทำงาน

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

ทั้งสองรุ่น (NB และ RNN) แตกต่างกันอย่างมากในวิธีที่พวกเขาพยายามทำการจำแนกประเภทนี้:

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

  • บนมืออื่น ๆ RNN เป็นจำแนกรูปแบบ มันพยายามที่จะเข้าใจว่าความแตกต่างระหว่างตัวอย่างบวกและลบของคุณเพื่อทำการจำแนก

ฉันขอแนะนำให้ค้นหา "อัลกอริทึมการเลือกปฏิบัติเทียบกับการกำเนิด" ถ้าคุณต้องการเรียนรู้โคลนตม

ในขณะที่ NB ได้รับความนิยมมานานหลายทศวรรษ RNNs กำลังเริ่มหาแอปพลิเคชั่นในช่วงทศวรรษที่ผ่านมาเนื่องจากความต้องการทรัพยากรการคำนวณสูง เวลาส่วนใหญ่ของ RNN นั้นผ่านการฝึกอบรมเกี่ยวกับ GPU เฉพาะ (ซึ่งคำนวณได้เร็วกว่าซีพียูมาก)

tl; dr: พวกเขาเป็นสองวิธีที่แตกต่างกันมากในการแก้งานเดียวกัน

ห้องสมุด

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

สำหรับ NB:

  • scikit-learn : เป็นห้องสมุด python ที่ใช้งานง่ายมากซึ่งมีการใช้งานของอัลกอริทึมการเรียนรู้ของเครื่องหลายอย่างรวมถึง Naive Bayes

  • NaiveBayes : ยังไม่ได้ใช้ แต่ฉันเดาว่ามันเกี่ยวข้องกับการตัดสินด้วยชื่อ

เนื่องจาก RNN ถือว่าเป็นอัลกอริทึมการเรียนรู้ลึกพวกเขาจึงมีการใช้งานในห้องสมุดการเรียนรู้ลึกที่สำคัญทั้งหมด:

  • TensorFlow : ห้องสมุด DL ที่เป็นที่นิยมมากที่สุดในขณะนี้ เผยแพร่และดูแลโดย google

  • theano : ห้องสมุดที่คล้ายกับ tf, แก่กว่า, จัดพิมพ์โดยมหาวิทยาลัยมอนทรีออล

  • keras : เสื้อคลุมสำหรับ tf และ theano ง่ายกว่ามาก. สิ่งที่ฉันแนะนำให้คุณใช้ถ้าคุณต้องการใช้ RNN

  • caffe : ห้องสมุด DL เผยแพร่โดย UC Berkeley มี python API

ข้อเสนอทั้งหมดข้างต้นรองรับ GPU หากคุณมี NVIDIA GPU ที่เปิดใช้งาน CUDA

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

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