สวัสดีครับ ชาว Blink Drive ทุกท่าน วันนี้เราจะมาต่อกันจากโพสที่แล้ว เจาะลึกการตัดสินใจของ Tesla FSD Beta (สรุปคร่าวๆ จากโพสนั้นคือ เราให้โจทย์ยากๆ กับรถ Tesla โดยให้รถ Tesla อยู่ที่ถนนเส้นรอง(ในซอย)และกำลังจะเลี้ยวซ้ายเพื่อข้ามไปอีกเลนในถนนเส้นหลัก อารมณ์เหมือนเรากำลังจะเลี้ยวรถออกจากซอยหน้าหมู่บ้านเพื่อข้ามไปอีกเลนนึงของถนนซึ่งเป็นสถานการณ์ที่ผู้ใช้งาน Tesla ต่างบอกเป็นเสียงเดียวกันว่า Tesla FSD Software (version ก่อนหน้านี้ทำไม่ได้) ทำให้อีลอนต้องไปบอกวิศกร FSD Software ให้สร้างชุดพัฒนา Software มาแก้ไขโจทย์นี้ จนกลายมาเป็นที่มาของโพสที่ทุกท่านกำลังจะอ่านนะครับ
โดยโพสนี้ผมจะเจาะลึกมันสมองของ Tesla FSD Software ว่ามันทำงานอย่างไรเวลาเจอสถานการณ์คับขันแล้วใช้วิธีการไหนในการแก้ไขปัญหาเฉพาะหน้า เช่น เลี้ยวซ้ายข้ามฝั่งไปยังถนนหลักอีกเส้น(ในอเมริกาการเลี้ยวไปถนนฝั่งซ้าย คือฝั่งตรงข้ามนะครับ ส่วนในไทยคือเลี้ยวขวาออกจากซอยครับ) เป็นต้น
แต่ก่อนที่จะเข้าเรื่องนั้นผมอยากให้ทุกคนทำความเข้าใจ concept (แนวคิด)ที่ Tesla นำมาใช้ในการมองเห็นอนาคตที่จะเกิดขึ้นก่อนที่สถานการณ์ต่างๆ จะเกิดขึ้นจริงกันนะครับ
จะเป็นอย่างไรถ้าคนเราสามารถรู้ล่วงหน้าได้ถึง 1-2 วินาที?
ก่อนจะตอบคำถามนั้น ขอให้ทุกคนทดเอาไว้ในใจก่อนนะครับแล้ว ดูรีวิวหนังด้านล่างไปพร้อมๆ กับผมเพื่อเข้าใจ concept นี้ครับ
ผมมีหนังเรื่องนึงมาแนะนำและชวนคุยนะครับ ทุกท่านเคยดูหนังเรื่อง Next ที่ฉายในปี 2007 ที่นิโคลัส เคจเป็นพระเอกได้ไหมครับ? ในหนังเรื่องนี้คุณนิโคลัส เคจรับบทเป็นคริส จอห์นสันที่เกิดมาพร้อมพลังพิเศษในการมองเห็นอนาคตเป็นระยะเวลามากสุด 2 นาที ซึ่งตอนแรกที่เค้ามีพลังนั้นเค้าปวดหัวกับมันมากๆ แต่หลังจากที่เค้าเข้าใจการใช้งานพลังเหล่านี้แล้วเค้าก็เอามันมาช่วยป้องกันประเทศจากการก่อการร้ายในอนาคต เมื่อกลุ่มผู้ก่อการร้ายขู่จะปล่อยระเบิดนิวเคลียร์ถล่มแอลเอ เฟอร์ริสครับ
ในหนังนั้นมีฉากนึงที่เชื่อมโยงกับ Interaction Search ของ Tesla FSD ที่ผมกำลังจะกล่าวถึง นั่นก็คือตอนที่คริสทำการแยกร่างออกไปแล้วก็เดินสำรวจเส้นทางในอาคารทั้งหมดครับ
หนังเรื่องนี้จำลองความเป็นไปได้ออกมาเป็นหลายร้อยอย่างแต่มีตอนนึงที่ทำให้ผมเข้าใจว่าทำไมต้องแยกร่างก็คือตอนพระเอกเดินผ่านทางเดินเชื่อมที่แห่งนึงแล้วมันเกิดระเบิดขึ้นมา จากนั้นตัวร่างแยกตัวนั้นก็ส่งข้อมูลกลับไปยังร่างหลัก ทำให้พระเอกรับรู้ว่าตรงทางเดินตรงนั้นมีอันตรายและเค้าก็ไม่เดินไปตรงนั้นครับ
สำหรับใครสนใจฉากนั้นก็สามารถรับชมฉากร่างแยกในคลิปด้านล่างนี้เลยนะครับ
คราวนี้ กลับมาที่คำถามกันใหม่นะครับว่า “จะเป็นอย่างไรถ้าคนเราสามารถรู้ล่วงหน้าได้ถึง 1-2 วินาที?” มันจะเปลี่ยนชีวิตเราไปแค่ไหนครับ? มันจะดีแค่ไหนถ้าเราสามารถอ่านอนาคตที่กำลังจะเกิดขึ้นอีก 1-2 วินาทีได้ ถ้ามองกันผิวเผิน 1-2 วินาทีในการใช้ชีวิตประจำวันนี่มันแค่หายใจ 1 ครั้งหรือครึ่งครั้งก็หมดแล้วนะครับ แทบจะไม่มีประโยชน์อะไรเลย
แต่ถ้าเป็นสถานการณ์บนท้องถนนที่เรากำลังขับขี่อยู่ล่ะก็ 1-2 วินาทีนี้เป็น time gap (ช่วงเวลา)ความเป็นความตายของเราและเพื่อนร่วมเดินทางได้เลยนะครับ เช่น ถ้าเรารู้ว่ามีเด็กกำลังจะเดินข้ามถนนก่อนล่วงหน้า 4 วินาที, รถข้างหน้ากำลังจะเสียหลักและไหลมาเลนของเราก่อนล่วงหน้า 1 วินาที, รถฝั่งตรงข้ามกำลังจะเลี้ยวข้ามมาเลนเราทั้งๆ ที่ยังไม่เปิดไฟเลี้ยวล่วงหน้า 2 วินาที, มีรถกำลังจะยูเทิร์นตัดหน้ารถเรา, เป็นต้น
เหตุการณ์เหล่านี้บางคนอาจจะเดาถูกจากพฤติกรรมการขับขี่บนท้องถนนที่เราเคยชิน ถ้าเราเจอรถคันไหนที่ขับแปลกที่ประสบการณ์ที่เราเจอมา เราก็จะสามารถรับรู้ล่วงหน้าได้ 1-4 วินาทีทันที พวกเราอาจจะไม่สามารถรับรู้ล่วงหน้าได้ไกลเหมือนคริสแต่เราจะรู้ได้อย่างทันทีว่ามีโอกาสที่รถคันหน้า, เด็ก, คน, หรือสุนัขกำลังจะตัดหน้ารถเรานะครับ เราจะสามารถลดอุบัติเหตุได้มากแค่ไหน
ผมว่า มาถึงตรงนี้ทุกคนคงเข้าใจภาพรวมของ Interaction Search ที่ผมกำลังจะพูดถึงแล้วนะครับ เอาล่ะครับ ถึงเวลาเราจะลงลึกเพื่อเข้าไปเข้าใจในสิ่งที่ฝรั่งเค้าพูดกันในงาน Tesla AI Day กันแล้วนะครับ
Interaction Search : input มีอะไรบ้าง?
ผมจะค่อยๆ ไปช้าๆ และอธิบายเยอะที่สุดเท่าที่จะทำได้เพื่อให้ทุกคนเข้าถึงเทคโนโลยีล้ำหน้าที่สุดในโลกอย่าง Tesla FSD Software แบบเจาะลึกนะครับ
Input ที่มีผลกับการนำมาประมวลผล Interaction Search นั้นประกอบไปด้วย
- Lanes : เลนถนน เอาไว้ใช้สำหรับบอกตำแหน่งรถและเส้นทางที่รถ Tesla จะเดินทางไป
- Occupancy : การมีอยู่ของวัตถุ ซึ่งจะเป็นตำแหน่งหรือรูปทรง เช่น ตึก, เส้นกั้นระหว่างถนน, กรวยถนน, ขอบถนน, หรือวัตถุอะไรก็ตามที่ไม่สามารถขยับไปไหนมาไหน ซึ่งวัตถุเหล่านี้จะไม่ค่อยมีผลกับการใช้งาน Tesla ยกเว้นรถ Tesla เจอที่กั้นถนนกลางถนน อันนี้ยังไม่เจาะลึกในโพสนี้
- Moving Object : วัตถุที่เคลื่อนที่ไปมาซึ่งมีเยอะมากๆ แต่ผมจะเอาตัวอย่างที่เกิดขึ้นบ่อยๆ มาจำแนกให้ดูตรงนี้ เช่น รถยนต์, สุนัข, คน, เด็ก, จักรยาน, มอเตอร์ไซค์, รถบัส, เป็นต้น วัตถุเหล่านี้มีความสำคัญอย่างมากสำหรับการตัดสินใจต่างๆของ Tesla FSD Software
ถัดมาคือ Parallel Decision Tree หรือแปลตรงตัวคือ “ต้นไม้ตัดสินใจ” ไม่ใช่แระ ฮ่าๆ เอาเป็นว่าผมเรียกทับศัพท์ไปเลยล่ะกันนะครับ จริงๆ แล้วต้นไม้มันจะแผ่รากลงลึกหรือแผ่กิ่งก้านสาขาขึ้นเป็น 10 เป็น 100 เลยนะครับ algorithm ตัวนี้ใช้การตัดสินใจแบบแผ่ร่างออกไป (เหมือนร่างแยกของคริสที่ผมพูดถึงด้านบนนะครับ) โดยร่างแยกเหล่านี้ก็ถูก label (ทำเครื่องหมาย) เป็นสีต่างๆ เพื่อให้เข้าใจความหมายได้ง่ายขึ้น เช่น
- สีเหลือง : อันตราย level 1
- สีส้ม : อันตราย level 2
- สีแดง : อันตราย level 3
- สีเขียว : ปลอดภัย
หมายเหตุ : level ต่างๆ นั้นเป็นสิ่งที่ผมสมมุติขึ้นมาครับ จริงๆ แล้วอาจจะสลับตำแหน่งกัน แต่หลักๆ คือ คอมพิวเตอร์ประมวลผลจะไม่เลือกเส้นทางเหล่านั้นครับ
หลังจากที่ Tesla FSD Software ได้ input มาแล้วมันจะทำการ maneuver trajectories (สร้างแผนการณ์) ขึ้นมาเพื่อหาเส้นทางที่ปลอดภัยที่สุด โดยเป้าหมายหลักคือหาเส้นทางที่สั้นที่สุดและปลอดภัยที่สุดเป็น first priority(ความสำคัญแรก)
เราจะเห็นได้ว่า node (โหนด : ซึ่งเป็นคำเรียกวงกลมใน Decision Tree อีกที) ที่เขียวที่สุดคือ โหนดฝั่งขวานะครับแต่ปรากฏว่า ตัวโปรแกรมดันไม่เลือกโหนดตัวนั้นเพราะมันมีค่า 3/1 (ค่าเยอะกว่า) อยู่คือ ต่อให้เส้นทางนั้นปลอดภัยที่สุดก็จริง แต่ไม่ได้แปลว่าจะสั้นที่สุด ดังนั้นระบบเลือกโหนดรองลงมาคือ 2/1 จากนั้นก็ทำการคำนวณไปต่อ
พอระบบลุยโหนด 2/1 ไปต่อ ระบบก็จะทำการจำลองสถานการณ์ถัดไปว่าจะเกิดอะไรขึ้นอีกนะครับ ซึ่งเราจะเห็นได้ว่า โหนดฝั่งซ้าย(ภาพด้านล่าง)เป็นสีแดงคือถ้ารถจะใช้เส้นทางนี้ โดยทำการออกตัวเร็วขึ้น เพื่อไปตัดหน้าคนข้ามถนน ซึ่งกรณีนี้รถจะมีโอกาสขับชนคนที่กำลังเดินข้ามถนน ส่วนภาพด้านขวามือ (Yield to Pedestrian) หรือให้ทางคนข้ามถนนไปก่อน จะเป็นเส้นทางที่ปลอดภัยทำให้ระบบรายงานออกมาว่าโหนดนี้เป็นสีเขียวเพื่อให้รถเลือกที่จะไปต่อกับโหนดสีเขียวนี้ครับ
ถัดลงมาอีกขั้นเราจะเห็นว่า ในภาพด้านล่างเราจะเห็นได้ว่า ต่อให้คนข้ามถนนไปแล้ว แต่ยังมีรถมาจากฝั่งขวามือทำให้ต้องมีโหนดให้คิดไปต่อนะครับ ทำให้มีความเป็นไปได้เกิดขึ้นทั้งหมด 4 อย่างจากการตัดสินใจเมื่อกี้(เลือกให้คนเดินข้ามถนนก่อนแล้วรถค่อยออกตัวไปอ้อมหลังคนเดินข้ามถนน) ระบบก็จะทำการค้นหาเส้นทางที่ปลอดภัยและสั้นที่สุดอีกครั้ง ซึ่งเราจะเห็นได้ว่า โหนดสีเขียวได้คะแนนเท่าๆ กันกับโหนดสีเขียวอ่อนด้านข้าง แต่ระบบจะเลือกเส้นทาง Base on (ขึ้นอยู่กับ) สองอย่างคือความปลอดภัยและเส้นทางการตัดสินใจที่สั้นที่สุดครับ
แต่ล่ะโหนดก็มีการคิดวิเคราะห์ของตนเอง
ในแต่ล่ะโหนดก็มีการคิดวิเคราะห์ของตนเองและแบ่งการวางแผน (Trajectory) ออกเป็น 2 อย่างนะครับ
- Physics Based Numerical Optimization : แปลเป็นไทยแบบง่ายๆ คือการคำนวณด้วยสูตรทางฟิสิกส์เพื่อหาค่าความน่าจะเป็นที่ดีที่สุดและที่แย่ที่สุดเพื่อเอาผลลัพธ์นั้นมาใส่ในโหนด เช่น คนเดินด้วยความเร็ว 3 km/h ถ้ารถออกตัวก่อน 0.2 วินาทีจะชน, งั้นเปลี่ยนค่าการออกตัวให้ช้าลง 0.5 วินาทีเพื่อหลบ อะไรประมาณนี้ครับ มันจะเป็น เรื่องที่เกี่ยวกับ Gradient Descent และ Gradient Ascent คือการปรับค่า input ไปเรื่อยๆ จนได้ผลลัพธ์ที่ดีที่สุดครับ (ขอไม่เจาะลึกเรื่อง Gradient Descent/Gradient Ascent)
- (อันนี้สมมุติให้เห็นภาพนะครับ แต่เอาจริงๆ แล้วสูตรการคำนวณมาลึกมากๆ ซึ่งผมขอไม่พูดถึงในโพสนี้หรือโพสไหนๆ ครับ ยกเว้นใครอยากทราบหรือพูดคุยเรื่องนี้ก็ทักมาให้เขียนแจกแจงสูตรได้ครับ เดี๋ยวผมจะทำโพสเขียนสูตรเหล่านี้ให้อ่านครับ)
- วิธีนี้ก็ดีแต่ว่า ช้าไปนิดนึงเพราะมันจะสามารถสร้างผลลัพธ์ออกมาที่ 1-5 milli second หรือ 0.001- 0.005 วินาทีต่อครั้ง หรือเทียบเท่า 200 – 1,000 ครั้งต่อวินาทีซึ่งอาจจะไม่เพียงพอต่อการตัดสินใจให้ทันท่วงที
- Neural Planner : ใช้ Lightweight Q Networks ในการ train (ฝึก)
- อันนี้คือ copy จากการตัดสินใจมนุษย์เลยครับ อย่างเช่น เหตุการณ์เลี้ยวซ้ายเพื่อข้ามไปอีกฝั่ง สมองกลในรถจะทำการบันทึกพฤติกรรมการขับของมนุษย์ว่าแก้ไขปัญหาอย่างไร? และขับขี่ยังไงเพื่อให้ผ่านพ้นปัญหานี้ไปได้
- ระยะเวลาในการตัดสินใจต่อครั้งอยู่ที่ 1 us (Micro Second) หรือเทียบเท่า 0.000001 หรือเท่ากับการตัดสินใจ 1,000,000 ครั้งต่อวินาที
- ซึ่งวิธีที่สองนั้นไวกว่าวิธีแรกเป็นไหนๆครับ
เราจะเห็นได้ว่า ภาพทางด้านซ้ายมือ(ด้านล่าง)นั้นจะเป็นการวิเคราะห์แยกแยะจากในสมองกลของหุ่นยนต์หรือเรียกง่ายๆ ว่า คำนวณกันในหัว ส่วนฝั่งขวามือคือการลอกข้อสอบจากมนุษย์เลยครับ
พี่ๆ น้องๆ ทุกท่านก็รู้กันเป็นอย่างดีเนอะว่า ระหว่างอ่านหนังสือเพื่อไปสอบกับลอกข้อสอบอันไหนได้ผลง่ายและไวกว่ากันนะครับ ฮ่าๆ แต่อย่างไรก็ตาม Tesla เลือกใช้ทั้งสองอย่างควบคู่กันเพื่อให้ได้ผลลัพธ์ที่ดีที่สุดนะครับ
มีชุดข้อมูลเพิ่มขึ้น 80 เท่าจากปีที่แล้ว
การคำนวณด้านบนที่กล่าวมานี้จะเป็นระดับ 1,000 – 1,000,000 ครั้งต่อวินาที อารมณ์เหมือนกับว่า Tesla FSD Beta เห็นทุกอย่างแล้วก็เห็นภาพทับซ้อนที่จะเกิดขึ้นในอนาคตอีก 1-3 วินาทีข้างหน้าเตรียมรอเอาไว้แล้วครับ แต่สิ่งที่ Tesla FSD Beta ขาดในวันนี้คือประสบการณ์ครับ
อย่าลืมนะครับว่าปีที่แล้ว(2021) นั้นมีรถยนต์ไฟฟ้า Tesla ที่ใช้ FSD Beta ได้เพียง 2,000 คันเท่านั้น เท่ากับว่า Tesla มี dataset(ชุดข้อมูล)ในมือวันล่ะ 2,000 ชุด(คัน)
แต่วันนี้ Tesla ปล่อย software FSD Beta ให้ download มาใช้งานกันถึง 160,000 คนซึ่งนั่นก็แปลว่า Tesla มี dataset เพิ่มขึ้นถึง 80 เท่าต่อวันและที่มากไปกว่านั้นคือเรื่อง Server Dojo รุ่นใหม่ที่มาประมวลผล dataset เหล่านี้ครับ
BLINK DRIVE TAKE
เป็นไงกันบ้างครับ นักเรียน Blink Drive ทุกท่าน (^0^)
ผมอธิบายแบบนี้แล้วพอจะเข้าใจกันไหมครับ?
เดี๋ยวบทความถัดไปนั้นผมจะขึ้นมาบนผิว(ไม่เจาะลึกแบบนี้อีกซักพัก ฮ่าๆ) เพื่อให้ทุกคนเข้าใจว่า Tesla พัฒนาไปไกลถึงไหนแล้วนะครับ
ภาพด้านล่างนี้จะถูกใช้ในบทความถัดไปครับ มาเดากันดูเนาะว่าจะเป็นเรื่องเกี่ยวกับอะไรกันบ้างครับ
หมายเหตุ : 160,000 คนนี้คือคนที่อยู่แคนาดาและอเมริกาที่ซื้อ FSD Beta Subscription เอาไว้ด้วยนะครับ
จริงๆ สมาชิกเพจ Blink Drive ส่งข้อความมาหลังไมล์ว่า “Influencer คนไทยในอเมริกาชื่อว่า 9arm ก็ซื้อ FSD เหมือนกันนะเห็นเค้ารีวิวลงคลิปอยู่ พี่ Blink ไม่รู้จักเค้าหรอ?”
Blink Drive Answer : ผมขอมาตอบสมาชิกเพจตรงนี้อีกทีนะครับ(เนื่องจากมีคนถามมา 2-3 คนผ่าน inbox แล้ว) ผมชื่อบริง(Bring)ครับไม่ใช่ Blink ส่วนเรื่องรู้จักนั้นต้องรู้จักอยู่แล้วครับเพราะแกเป็น youtuber ที่มี sub เยอะมากๆ
ส่วนเรื่องคลิปนั้น จริงๆ คลิปนั้นเป็นขับขี่แบบ Navigate on Autopilot นะครับ ยังไม่ใช่ Tesla FSD Beta ครับ
ผมไม่ได้รู้จักแกเป็นการส่วนตัวเลยไม่สามารถถามได้จริงๆว่า FSD V.10 ที่แกหมายถึงนั้นคืออะไรครับ (ถ้ารู้จักได้ก็ดีครับ ผมอยากทำความรู้จักแก เพราะแกเป็นเหมือนเป็นรุ่นพี่คนนึงในวงการสื่อ IT เหมือนกันครับ แต่ดูจาก status เพจผมแล้วคงยากส์นิดส์นึงครับ ยังไงก็ขอตอบลูกเพจอย่างเดียวตรงนี้ล่ะกันนะครับ)
อย่างไรก็ตาม ผมดีใจที่แกซื้อมาครับและเชื่อว่า เค้าคงจะเอามารีวิวให้พวกเราชมกันเร็วๆ นี้เหมือนกันครับ เพราะตอนนี้ชาว Tesla ที่ซื้อ FSD Software Beta เอาไว้นั้นได้สิทธิ์การใช้งานหมดแล้วครับ (รอดูแกรีวิวครับ)
ส่วนผมกับพี่ต้อม (iMOD) นั้นคือรีวิว FSD Beta Software ไปกันเมื่อเดือนมิถุนายน 65 ที่ผ่านมาแล้วนะครับ ชมคลิปด้านล่างนี้ได้ตรงนี้เลยครับ FSD Beta ตัวนี้เป็น Version 10.12.2 ปัจจุบันนั้นเป็น Version 10.69.3 (ห่างกันประมาณ 50 sub-version ไปแล้วครับ)