คลังเก็บหมวดหมู่: Pattern Recognition

โม้เกี่ยวกับเทคโนโลยี Speech Recognition, Voice Recognition, Facial Recognition, Optical Characteristic Recognition

สาเหตุที่ไม่ค่อยชอบ Neural Network ซักเท่าไหร่

เห็นทุกวันนี้งานทางด้าน AI ใช้ Neural Network มากขึ้นเรื่อย ๆ ซึ่งโดยส่วนตัวแล้วไม่ค่อยชอบโมเดลปัญญาประดิษฐ์แบบ Neural Network ซักเท่าไหร่ เพราะ …

Model Neural Network แบบต่าง ๆ
Model Neural Network แบบต่าง ๆ
  1.  แปลความยาก คือเวลามันเรียนรู้แล้วสร้างเส้นแบ่ง เส้นแบ่งมันเป็นเส้นโค้ง โค้งไปมาตามข้อมูลที่มันเรียน มันเลยไม่มีความเป็นกลาง ลองนึกถึงว่าเราตีเส้นตรงเพื่อแบ่งเขต เรายังตีความง่าย แต่พอมันโค้ง เราต้องตีความว่าทำไมมันโค้ง มันหลบทำไม มันมีอะไรพิเศษถึงต้องโค้งหลบ (มันเหมือนทางด่วนที่สร้างหลบบ้านคนรวยมั้ย)
  2. ถ้าอยากได้เส้นแบ่งเป็นเส้นตรง ก็ต้องเลือกใช้ Neural Network แบบ Perceptron แต่มุมเอียงของเส้นตรงที่แบ่งข้อมูล ก็จะเอียงแบบไม่มีหลักการ ถ้าเอาไปเทียบกับ Linear Support Vector Machine หรือ Linear Discriminant Analysis พวกนั้นยังตีเส้นตรงแบ่งแบบมีหลักการกว่าเยอะ
  3. มันช้า แต่ล่ะ epoch แปรผันตรงกับ node และ layer ยิ่งเยอะ ยิ่งช้า
  4. โมเดลมันเป็นแบบปลายเปิด คือ ไม่รู้ว่าจะต้องออกแบบ Hidden Layer หรือ Recurrent Layer หรือ Kernel Layer กี่ node หรือกี่ layer ถึงจะเหมาะกับปัญหาที่จะแก้ ต้องลองผิดลองถูกไปเรื่อยๆเอง
  5. การสุ่มค่าน้ำหนักเริ่มต้น เป็นไปตามดวง สุ่มไม่ดีเรียนรู้ช้า สุ่มดีเรียนรู้เร็ว
  6. ต้องใช้ข้อมูลเพื่อเรียนรู้เยอะมาก กว่าจะแบ่งเขตข้อมูลได้อย่างเหมาะสม

ไม่รู้คนอื่นเจอแค่ไหน แต่ที่ส่วนตัวเคยสัมผัสมา ก็ประมาณนี้

แต่ก็ไม่ใช่ว่า Neural Network จะไม่มีอะไรดีเลยในสายตาผมนะ ผมยังมองว่ามันมีจุดดีอยู่บ้าง ซึ่งเป็นจุดที่ผมชอบมาก ๆ เลย

นั่นก็คือ เมื่อสร้าง Model Neural Network ขึ้นมา แล้วสอนมันจนได้ประสิทธิผลที่พอใจแล้ว เราก็ไม่จำเป็นจะต้องสนใจกับข้อมูลที่สอนอีกต่อไป สนใจเฉพาะโมเดลที่ได้ก็พอ

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

การพิสูจน์ผลการ Predict และ Mining ด้วย Domain Expert

ผมเชื่อมาตลอดว่างานวิจัยทางด้าน Predict ง่ายกว่าทางด้าน Mining เพราะงานวิจัยทาง Predict ส่วนใหญ่แล้วพิสูจน์ได้ด้วยการหา ROC curve จะมีส่วนน้อยเท่านั้นที่ต้องใช้ Domain Expert เข้ามาช่วย เช่น งานทางด้าน Facial Recognition เป็นต้น

ในขณะที่งานวิจัยทางด้าน Mining ส่วนใหญ่แล้วต้องพิสูจน์ด้วย Domain Expert เพราะการหาความรู้จากข้อมูล มันไม่สามารถพิสูจน์ได้ถ้าไม่มีผู้เชี่ยวชาญมาตัดสินว่าถูกหรือผิด เช่น ถ้าจะจัดกลุ่มข้อมูลทางด้านโรคภัยไข้เจ็บ พอจัดกลุ่มได้ก็ต้องให้หมอมาตัดสิน หรือถ้าจะจัดกลุ่มข้อมูลการออกฤทธิ์ของยา ก็ต้องให้เภสัชกรมาตัดสิน เป็นต้น

การให้ผู้เชี่ยวชาญหรือ Domain Expert มาตัดสินว่าถูกหรือผิดมีต้นทุนที่สูง เพราะอย่างแรกก็คือเราจะไปรู้จัก Domain Expert เหล่านั้นได้ยังไง อย่างสองก็คือจะเอาอะไรมาพิสูจน์ว่าคนเหล่านั้นเป็น Domain Expert จริง และอย่างสามก็คือจะเอาวิธีการเก็บสถิติหรือเก็บผลสำรวจแบบไหน เพื่อมาใช้ประกอบการตัดสินผลการ Mining โดย Domain Expert

เมื่อเป็นเช่นนี้แล้ว มันจึงทำให้ดูเหมือนกับว่า งานวิจัยทางด้าน Mining ค่อนข้างจะโน้มเอียงไปในทางสังคมศาสตร์อยู่ไม่น้อย!!!

จริง ๆ แล้วผมก็เห็นงานวิจัยหลายชิ้นที่พยายามหนีการพิสูจน์ด้วย Domain Expert โดยการใช้ Internal Indices เข้ามาช่วย เช่นการพิสูจน์ว่าผลการจัดกลุ่มถูกต้องมั้ย โดยการพิสูจน์ย้อนกลับว่าสมาชิกในแต่ล่ะกลุ่ม เกาะกลุ่มกันใกล้ศูนย์กลางจริงหรือเปล่า ซึ่งแล้วไงล่ะ? มันก็แค่พิสูจน์ว่ามันเกาะกลุ่มจริง แต่มันก็ยังคงพิสูจน์ไม่ได้อยู่ดีว่าการเกาะกลุ่มของมัน สมเหตุสมผลกับสภาวะความเป็นจริงหรือเปล่า จนกว่าจะมี Domain Expert มาตัดสินมัน

ผมกำลังคิดว่า มันน่าจะมีวิธีพิสูจน์ผลการ Mining แบบกลาง ๆ ซึ่งอยู่ระหว่างวิธีใช้ Domain Expert กับวิธีใช้ Internal Indices ซึ่งต้องดูกันต่อไป

 

การปรับปรุงประสิทธิภาพของ Hidden Markov Models

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

ส่วนตัวผมเองก็รู้ทฤษฎีการคำนวณสำหรับคอมพิวเตอร์เพียงไม่กี่เรื่องครับ ดังนั้น ก็เลยต้องเลือกทบทวนวรรณกรรมในหัวข้อที่ตนเองถนัดที่สุด นั่นคือ แบบจำลองทางสถิติที่ชื่อว่า Hidden Markov Models และเพื่อให้ไม่เป็นการเสียเวลา มาลองอ่านงานทบทวนวรรณกรรมฉบับร่างของผมดูกันครับ

ทบทวนวรรณกรรม

นับตั้งแต่งานวิจัย Hidden Markov Model [1][2][3][4] ซึ่งเป็นโมเดลที่เหมาะกับการอนุมานความน่าจะเป็นของลำดับที่ซ่อนอยู่ โดยการวิเคราะห์จากลำดับที่สังเกตได้ ๆ ถูกตีพิมพ์เผยแพร่ออกสู่สาธารณชน และ มีงานวิจัย [5][6][7] ที่ได้บุกเบิกนำ Hidden Markov Models มาปรับใช้สำหรับงานด้าน Speech Recognition เพื่อเปรียบเทียบระหว่างเสียงพูดกับชุดข้อความอย่างมีประสิทธิภาพ ก็ได้ทำให้ Hidden Markov Models กลายเป็นโมเดลที่ถูกประยุกต์ใช้อย่างกว้างขวาง ในการแก้ปัญหาต่าง ๆ ที่เกี่ยวกับการอนุมานความน่าจะเป็นของลำดับที่ซ่อนอยู่ โดยการวิเคราะห์จากลำดับที่สังเกตได้ เช่น งานวิจัย [8] การจับคู่สายรหัสพันธุกรรม ซึ่งเป็นงานด้าน Bioinformatics, งานวิจัย [9] [10][11] การจับคู่ระหว่างข้อความกับรูปแบบของการวาดมือ ซึ่งเป็นงานด้าน Gesture Recognition, งานวิจัย [12] การหาทิศทางเดินให้กับหุ่นยนต์ในสภาพแวดล้อมปิดในอาคาร ซึ่งเป็นงานด้าน Robotics, งานวิจัย [13] [14] [15] ตรวจสอบการบุกรุกระบบคอมพิวเตอร์ ซึ่งเป็นงานด้าน Computer Security เป็นต้น

โดยพื้นฐานแล้วถ้าเราไม่สนใจประสิทธิภาพในการคำนวณ เราจะพบว่า Hidden Markov Models เป็นโมเดลที่ใช้ประโยชน์ได้ดีและไม่มีปัญหา แต่หากเราสนใจประสิทธิภาพในการคำนวณ เราจะพบว่า Hidden Markov Models มีปัญหาพื้นฐานอยู่ 3 ข้อ อันได้แก่ 1) การหาผลรวมสุทธิของความน่าจะเป็นของโมเดล เมื่อเทียบกับลำดับที่สังเกตได้, 2) การหาลำดับที่ถูกซ่อนในโมเดล ซึ่งให้ค่าความเป็นไปได้สูงสุด เมื่อเทียบกับลำดับที่สังเกตได้ และ 3) การปรับค่าพารามิเตอร์ในโมเดล เพื่อให้โมเดลมีผลรวมสุทธิของความน่าจะเป็นเพิ่มขึ้น

อ่านเพิ่มเติม การปรับปรุงประสิทธิภาพของ Hidden Markov Models

สื่อถึง Markov Model

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

การเข้าใจ Markov Model เองก็เช่นเดียวกัน เพราะผู้อธิบายมักจะใช้วิธีการเล่าเรื่องตัดฉากไปมา ระหว่างตัวโมเดล, ไดอะแกรม, ตัวอย่าง และ สมการคณิตศาสตร์ จึงทำให้บางครั้งถ้าเราตามไม่ทัน เราอาจจะงงได้

มายกตัวอย่าง Markov Model อย่างง่ายกันดีกว่า นั่นคือ Model ของความน่าจะเป็นในการโยนเหรียญหนึ่งเหรียญ โดยมีสถานะที่เป็นไปได้สองสถานะคือ หัว และ ก้อย

C360_2013-01-16-10-44-57
ภาพที่ 1

Markov Model มีสมมติฐานที่ว่า ความน่าจะเป็นของสถานะปัจจุบัน จะขึ้นกับความน่าจะเป็นของสถานะก่อนหน้า ดังนั้น ก็เลยมีการวาดความหมายออกมาแบบภาพที่ 1 ซึ่งถ้าเป็นคนมีพื้นฐานก็จะเข้าใจได้อย่างลาง ๆ ว่ามันมีการเคลื่อนผ่านอย่างสัมพันธ์กัน, มีการให้ค่าน้ำหนักกับการเคลื่อนผ่าน และ มีการแทนโน่นนี่นั่นด้วยตัวแปรสองมิติ เป็นต้น

C360_2013-01-16-10-45-28
ภาพที่ 2

ถ้าเราเอาภาพที่ 1 มาทำเป็น Matrix เราก็จะได้เป็นภาพที่ 2 เป็นการย่อภาพแบบ Model ให้กลายเป็นแบบ Matrix ซึ่งจะดูง่ายต่อความเข้าใจมาก ๆ

ภาพที่ 3
ภาพที่ 3

แต่ถึงกระนั้น ก็ยังจำเป็นที่จะต้องอธิบายให้เป็นสมการตามภาพที่ 3 เพื่ออธิบายให้เข้าใจว่า แต่ล่ะแถวของแนวนอนใน Matrix เมื่อบวกรวมกันแล้วต้องได้ค่าเท่ากับ 1 หรือก็คือ ความน่าจะเป็นของการเคลื่อนออกจากสถานะปัจจุบันไปยังสถานะหลาย ๆ อันที่เป็นไปได้ทั้งหมด รวมกันยังไงก็ต้องเท่ากับ 1

ภาพที่ 4
ภาพที่ 4

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

ภาพที่ 5
ภาพที่ 5

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

ทีนี้เมื่อเราได้ Model เอย สมการเอย และ Matrix เอยมาเรียบร้อยแล้ว จากนั้นเราก็จำเป็นที่จะต้องมาเข้าใจถึง “ความเป็นไปได้” ในการเกิด “ความน่าจะเป็น” อีกทีนึง

ภาพที่ 6
ภาพที่ 6

จากภาพที่ 6 ซึ่งถูกเรียกด้วยศัพท์เทคนิคว่า Trellis Diagram เผยให้เราเห็นว่า ในแต่ล่ะครั้งที่เราโยนเหรียญ มันมี “ความเป็นไปได้” ทั้งหมดในเส้นทางที่จะเกิด “ความน่าจะเป็น” ยังไงบ้าง ซึ่งภาพที่ 6 นี้สอดคล้องกับภาพที่ 1 คือ ภาพที่ 1 อธิบายในแง่ของการไหลเวียนแบบหยินหยาง ในขณะที่ภาพที่ 2 อธิบายในแง่ของการไหลเวียนตามแกนเวลา

สุดท้าย เมื่อเราเข้าใจในการไหลเวียนแบบหยินหยาง และ เข้าใจในการไหลเวียนตามแกนเวลาแล้ว เราก็จะมาจบที่สมการคณิตศาสตร์ง่าย ๆ ตามภาพที่ 7

ภาพที่ 7
ภาพที่ 7

สมการในภาพที่ 7 ได้อธิบายถึง “ความเป็นไปได้” ที่จะเกิด “ความน่าจะเป็น” ตาม Trellis Diagram ในภาพที่ 6 ซึ่งสมการนี้ดูแล้วปวดกบาลมาก แต่สามารถแปลได้ใจความง่าย ๆ ว่า ถ้าอยากรู้ความน่าจะเป็นของสถานะปัจจุบัน ก็เอาความน่าจะเป็นของสถานะก่อนหน้าซึ่งเป็นไปได้ทั้งหมดมาคูณกันซะ (หรืออาจะมีบวกด้วยถ้าจำเป็น) แล้วพอคำนวณกันเสร็จแล้วก็ไปคูณกับสถานะตั้งต้นนู่น แค่นี้ก็จะรู้ความน่าจะเป็นของสถานะปัจจุบันแล้ว

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

เรื่องจริงเกี่ยวกับ Neural Network ที่ไม่ค่อยมีใครบอก

ช่วงนี้ผมกำลังอ่านหนังสือชื่อ Neural Network Design แต่งโดย Hagan, Demuth และ Beale เป็นการอ่านแบบจริงจังไม่จิงโจ้ อ่านเพื่อหวังจะเอาไปต่อยอดทำวิจัย ไม่ได้อ่านแบบไก่กา ผิวเผิน ลวก ๆ เพื่อเอาไปสอบแล้วก็ลืม ๆ ไปอะไรแบบนั้น

คนนอกที่ไม่เคยเรียนรู้ Neural Network แต่มีความสนใจก็จะเข้าใจไปแบบนึง ส่วนคนในที่ได้เรียนรู้แล้วก็เข้าใจอีกแบบนึง ดังนั้น มาเรียบเรียงความเข้าใจที่เป็นความจริงเกี่ยวกับ Neural Network กันดีกว่า

  • Neural Network เป็นชื่อเรียกสั้น ๆ ถ้าเป็นเต็ม ๆ เขาเรียกกันว่า Artificial Neural Network หรือว่า ANN
  • จริง ๆ แล้ว Neural Network เป็นโมเดลทางคณิตศาสตร์ แต่คนคิดค้นเขาอยากจะให้เข้าใจง่าย ๆ เขาเลยวาดออกมาเป็นรูปภาพ
  • คณิตศาสตร์ที่ใช้เกี่ยวกับ Neural Network จะเป็นพีชคณิตเชิงเส้น, เมตริกซ์ และ เวกเตอร์
  • Neural Network มาเกี่ยวกับสาขาวิชา Computer Science เพราะมันเป็นโมเดลที่ช่วยแก้ปัญหาทางด้าน Machine Learning ซึ่งเป็นแขนงวิชาย่อยของแขนงวิชา Artificial Intelligence ได้
  • เราสามารถทำความเข้าใจ Neural Network ได้หลายวิธี ไม่ว่าจะเป็นการทำความเข้าใจผ่านรูปภาพโมเดล, ผ่านสมการ Summation, ผ่าน Matrix หรือแม้แต่ผ่านรูปภาพปริภูมิ 2 มิติหรือ 3 มิติ สรุปคือแล้วแต่จริตของใครว่าจะถนัดแบบไหน เพราะเข้าใจแบบไหนก็ได้ผลลัพธ์เหมือนกัน เช่นบางคนไม่เคยเรียน Matrix มาก่อน แต่อาจจะเข้าใจด้วยสมการ Summation ก็ได้ เป็นต้น
  • มีนักวิจัยเยอะแยะในโลกใบนี้ ที่พยายามคิดค้น Neural Network ในรูปแบบต่าง ๆ บางรูปแบบก็ไม่เป็นที่นิยม บางรูปแบบเคยเป็นที่นิยมแต่ล้าสมัยแล้ว บางรูปแบบก็แก้ปัญหาได้บางเรื่องแต่บางเรื่องก็แก้ไม่ได้ บางรูปแบบยังต้องต่อยอดไปอีกหลายขุมถึงจะใช้ได้
  • การวิจัย Neural Network รูปแบบใหม่ ๆ เป็นเรื่องยาก นักวิจัยส่วนใหญ่เลยเลือกจะเอา Neural Network รูปแบบที่มีคนคิดขึ้นแล้ว มาประยุกต์เพื่อแก้ปัญหาต่าง ๆ แทน
  • Neural Network เป็นโมเดลทางคณิตศาสตร์ ดังนั้น นักวิจัยส่วนใหญ่จึงมักจะใช้ MATLAB เพื่อทำวิจัย เพราะ MATLAB มันเก่งเรื่อง Matrix และการแสดงผลภาพในปริภูมิ 2 มิติและ 3 มิติมาก ๆ แถมยังมีเครื่องมือเกี่ยวกับ Neural Network ในรูปแบบที่เป็นที่นิยมบรรจุอยู่อีกต่างหาก
  • การทำให้ Neural Network ฉลาดก็คือการสอนมัน แต่เรื่องจริงไม่ได้หมายความว่าเราใช้ปากไปสั่งสอนมัน หรือใช้การเขียนโปรแกรมไปสั่งมันแบบนั้น แต่มันหมายถึงการที่เราป้อนตัวอย่างข้อมูลให้มัน แล้วให้มันถามเรากลับมาว่า “ใช่” หรือ “ไม่ใช่” หรือ “เกือบใช่” หรือ “เกือบไม่ใช่” หรือ “คล้ายจะใช่” หรือ “คล้ายจะไม่ใช่” แล้วให้เราตอบมันกลับไปว่าเออมันต้องอย่างนั้นนะอย่างนี้นะ ให้มันจำของมัน แล้วก็ปรับค่าน้ำหนักไปเรื่อย ๆ
  • ถ้าจะให้มันฉลาด เราก็ต้องป้อนตัวอย่างข้อมูลให้มันเยอะ ๆ แต่พอเป็นแบบนั้น เราเองก็ขี้เกียจมาตอบมันเหมือนกัน ดังนั้น เราก็ต้องตอบมันไประดับนึง แล้วจากนั้นก็ให้มันตอบคำถามของตัวเอง ให้มันปรับตัวของมันเอง
  • เคยอ่านเจอที่ไหนไม่รู้เขาบอกว่า ถ้าจะให้ Neural Network ปรับตัวและปรับค่าน้ำหนักจนกระทั่งนึกรู้ได้แม่นยำ เราต้องป้อนตัวอย่างข้อมูลเพื่อสอนมันเป็นล้าน ๆ ชิ้นเลยทีเดียว
  • นักวิจัยส่วนใหญ่ที่เอา Neural Network ไปทำ Pattern Recognition มักไม่เคยได้ค่่าความแม่นยำเกิน 85% เลย ไม่รู้ทำไมเหมือนกัน?
  • สุดท้ายนักวิจัยส่วนใหญ่ก็เลยหันเหไปวิจัยแบบผนวก โดยการแก้ปัญหา Pattern Recognition ด้วยการใช้ Neural Network รวมกับ Genetic Programming แทน

สรุปแล้ว งานวิจัยทางด้าน Pattern Recognition ล้วนใช้คณิตศาสตร์อย่างเยอะเลยอ่ะ แล้วผมก็อ่อนคณิตศาสตร์ซะด้วยสิ แย่จริง ๆ