เชิญร่วมงานสัมมนา Rethink & Rebuild your Cyber Security Plan โดย AMR Asia

ทำได้ทุกอย่าง! 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

วางรากฐานดิจิทัลด้วย Infor LN – ซอฟต์แวร์ ERP ที่ถูกออกแบบมาเพื่อธุรกิจโรงงานโดยเฉพาะ by ProSoft Co.,Ltd.

ระบบ ERP คือสิ่งที่องค์กรมักจะนึกถึงเป็นอย่างแรกๆในการทำ Digital Transformation ระบบ ERP สมัยใหม่นั้นไม่เพียงแต่จะต้องจัดการกระบวนการทำงานได้เป็นอย่างดี แต่ยังต้องเปิดกว้างต่อการพัฒนานวัตกรรม มีโครงสร้างรองรับการทำงานร่วมกับเทคโนโลยีใหม่ในอนาคต และมั่นคงพอที่ธุรกิจจะต่อยอดใช้ในระยะยาวได้ ProSoft เป็นหนึ่งในผู้ให้บริการที่มีซอฟต์แวร์ ERP ที่มีความสมดุลระหว่างความสามารถในการบริหารการดำเนินงาน …

PHP 8.0 ออกแล้ว เพิ่มความสามารถใหม่มากมาย พร้อมปรับปรุงประสิทธิภาพในการทำงานให้ดีขึ้น

ทีมพัฒนา PHP ได้ออกมาประกาศเปิดตัว PHP 8.0 ซึ่งเป็น Major Update ล่าสุดอย่างเป็นทางการ โดยมีการเพิ่มความสามารถใหม่ๆ ที่น่าสนใจและการเพิ่มประสิทธิภาพการทำงานของระบบให้สูงยิ่งขึ้นหลากหลายวิธี เช่น