Breaking News
เอาเครื่องเก่ามาแลก แล้วรับเงินคืนไปเลย!!

ทำได้ทุกอย่าง! Microsoft Research เผยงานวิจัยใช้ Deep Learning เขียนโปรแกรมตาม output ที่อยากได้

ทีมวิจัยจาก Microsoft Research ประสบความสำเร็จในการใช้ Deep Learning ในการสังเคราะห์โปรแกรม (Program Synthesis) ตามที่ผู้ใช้ต้องการจากคู่ input และ output ที่ผู้ใช้กำหนด โดยโค้ดที่ออกมาจะอยู่ในภาษา domain specific language (DSL)

Deep Learning ดังกล่าวทำการสังเคราะห์โปรแกรมตามความต้องการของผู้ใช้ (intent) ที่ถูกกำหนดโดยคู่ input และ output ยกตัวอย่างเช่นในกรณีที่ผู้ใช้ต้องการ format ข้อความในรูปแบบใดรูปแบบหนึ่ง ผู้ใช้สามารถป้อน input และ output ในลักษณะเดียวกับตารางข้างล่าง

Credit: Microsoft Research

Deep Learning นี้ก็จะเขียนโปรแกรมออกมาให้ดังนี้

Concat(
   ToCase(
       GetToken(
           input,
           Type=Word,
           Index=-1),
       Type=Proper),
   Const(", "),
   ToCase(
       SubString(
         GetToken(
             input,
             Type=Word,
             Index=1),
         Start=0,
         End=1),
       Type=Proper),
   Const("."))

ความท้าทาย 2 ข้อใหญ่ที่ทีมวิจัยต้องต่อกรในการพัฒนาระบบ deep learning นี้ คือ

  1. จาก input และ output หนึ่งคู่นั้นมีโปรแกรมที่เป็นไปได้มหาศาล และ
  2. input และ output จากมนุษย์นั้นมักจะมี noise เช่น การพิมพ์ผิด

ซึ่งสำหรับปัญหาในข้อ 2 นี้ ทางทีมได้คิดค้นเทคนิคที่ชื่อว่า RobustFill ซึ่งใช้ attentional sequence-to-sequence neural network ในการเรียนรู้ความสัมพันธ์ระหว่างคู่ input/output โดยไม่ต้องมีการตั้งกฎเกณฑ์ที่ตายตัว ทำให้ระบบสามารถผลิต output ที่ถูกต้องได้จากข้อมูลที่มี noise

ทีมวิจัยทำการเทรนด์ระบบดังกล่าวด้วยการสร้างข้อมูล input และ output แบบสุ่มหลายล้านชุด และเมื่อทำการทดสอบกับข้อมูลจริงระบบประสบความสำเร็จในการสังเคราะห์โปรแกรมในอัตราร้อยละ 92 แม้ข้อมูลที่ใช้จะมี noise มากก็ตาม

ระบบนี้นอกจากจะเป็นก้าวที่สำคัญในการนำ Deep Learning มาประยุกต์ใช้ในการสังเคราะห์โปรแกรมแล้ว ยังเป็นการค้นพบวิธีการจัดการกับความท้าทายซึ่งเป็นปัญหาร่วมกับระบบ symbolic knowledge representation อีกด้วย ในอนาคต ทีมวิจัยมีแผนจะพัฒนาระบบให้สามารถเขียนโปรแกรมให้ได้ลึกซึ้งยิ่งขึ้นด้วยการจัดการกับปัญหาทางเทคนิคอื่นๆของการสังเคราะห์โปรแกรมและการอนุมานทั่วไป

งานวิจัยต้นฉบับ

 

ที่มา: https://www.microsoft.com/en-us/research/blog/deep-learning-program-synthesis/?wt.mc_id=MCR_378116_TW1



Check Also

DCS เปิดคอร์สสอน RPA พื้นฐานด้วย UiPath หัดสร้าง Bot พร้อมใช้งานได้ใน 1 วัน (21 ต.ค. 2020)

DCS และ TechTalkThai ขอเชิญทุกท่านที่สนใจประยุกต์นำเทคโนโลยี Robotic Process Automation หรือ RPA ไปปรับใช้ในธุรกิจของตนเอง เข้าเรียนคอร์ส “UiPath Robotic Process Automation with Datapro Computer Systems” เพื่อเรียนรู้แนวคิดด้าน RPA ทั้งในเชิงทฤษฎี, สร้าง Bot ของตนเองในภาคปฏิบัติด้วยการใช้ระบบจาก UiPath พร้อมถ่ายทอดประสบการณ์การประยุกต์นำ Bot ไปใช้งานในภาคส่วนต่างๆ ของธุรกิจ และเปิดให้สอบถามหรือปรึกษาในประเด็นต่างๆ ได้อย่างอิสระ ในวันพุธที่ 21 ตุลาคม 2020 โดยมีรายละเอียด กำหนดการ และวิธีการสมัครเรียนดังนี้

[Guest Post] ประเด็นร้อน: การต่อสู้กับไฟป่าด้วยเทคโนโลยี

ประเด็นร้อน: การต่อสู้กับไฟป่าด้วยเทคโนโลยี โดย Bakhtiar Talhah (บัคเทียร์ ตัลฮาฮ์) ประธานเจ้าหน้าที่ฝ่ายปฏิบัติการ  มาตรฐานการผลิตน้ำมันปาล์มอย่างยั่งยืน Roundtable on Sustainable Palm Oil (RSPO)