5 ตัวอย่างกับการใช้ AI ในอุตสาหกรรม Healthcare อย่างมีประสิทธิภาพ

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

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

มาดูกันว่า 5 ตัวอย่างของการใช้ AI ในอุตสาหกรรมการแพทย์ เพื่อเพิ่มประสิทธิภาพนั้นมีอะไรกันบ้าง

1.AI-assisted robotic surgery

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

ด้วยความสามารถของ AI  ทำให้หุ่นยนต์ผ่าตัดนั้น สามารถที่จะเรียนรู้จากการผ่าตัดครั้งก่อน ๆ หน้า เพื่อปรับเทคนิคในการผ่าตัดครั้งตอไปให้กับคนไข้ได้  ซึ่งมี Case Study ที่นำเอา AI มาช่วยเหลือหมอผ่าตัดกระดูกและข้อ ซึ่งสามารถลดจำนวนการผ่าตัดได้ถึง 5 เท่า หากเทียบกับ ให้หมอ Orthopedic ได้ทำการวิเคราะห์ด้วยตัวเองเพียงคนเดียว

Da Vinci

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

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

2. Virtual nursing assistants

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

ซึ่งคล้าย ๆ กับ ระบบ Chatbot ที่กำลังเป็นที่นิยมในขณะนี้ การมีผู้ช่วยเหลืออย่าง Virtual Nursing นั้น สามารถที่จะทำงานได้ตลอด 24 ชม. โดยไม่ต้องมีการพักเปลี่ยนเวร แต่อย่างใด รวมถึง ได้ประสิทธิภาพบางอย่างที่ดีกว่าด้วย สามารถตอบคำถามได้อย่างรวดเร็วกว่าการใช้มนุษย์เป็นอย่างมาก หากเป็นคำถามที่ซ้ำ ๆ ที่ AI สามารถที่จะเรียนรู้ได้

แถมยังช่วบลดความไม่จำเป็นในการเข้ามาที่โรงพยาบาลได้อีกด้วย ตัวอย่างที่ประสบความสำเร็จของ Virtual Assistant เช่น Care Angel’s ที่มีความสามารถทีช่วยเช็คสุขภาพเบื้องต้นของผู้ป่วยผ่านทางการสื่อสารด้วยเสียง และความสามารถของ AI ที่จะช่วยคัดกรองคนไข้ เพื่อไม่ต้องเข้ามาที่โรงพยบาลหากไม่ใช่เรื่องจำเป็นจริง ๆ

3. Aid clinical judgement or diagnosis

ในปัจจุบันมีหลาย use case ที่น่าสนใจในการนำ AI เข้ามาร่วมในการวินิจฉัยผลของคนไข้  ตัวอย่างนึงที่น่าสนใจคือทาง มหาวิทลัย Standford ได้ทำการทดสอบ AI Algorithm ในการตรวจมะเร็งผิวหนัง โดยมีการเปรียบเทียบกับ หมอผู้เชี่ยวชาญทางด้านผิวหนัง แล้วพบว่า ผลของการวินิจฉัยด้วย AI นั้น มีความสามารถเทียบเท่ากับการใช้หมอผู้เชี่ยวชาญด้านผิวหนังในการวินิจฉัย แต่สิ่งที่แตกต่างกันอย่างชัดเจน คือ เวลา ที่ใช้ในการวินิจฉัยต่างกันอย่างมาก AI สามารถทำได้ภายในระยะเวลาไม่กี่นาที ต่างกับ หมอผู้เชี่ยวชาญที่ต้องใช้เวลาหลายชม. ในการวิเคราะห์ผล

งานวิจัยอีกชิ้นที่น่าสนใจของ Danish AI software นั้น ได้ทำการทดสอบ algorithm ในการฟังเสียงสนทนา เมื่อมีการโทรศัพท์ฉุกเฉินเข้ามาในโรงพยาบาล กรณีผู้ป่วยในโรคหัวใจ โดยการดักฟังโทนเสียงของผู้ป่วย รูปแบบการพูด พบว่าสามารถคัดกรองผู้ป่วยที่มีโอกาสที่จะมีอาการหัวใจวายได้ถึง 93% ซึ่งสูงกว่ารูปแบบปรกติที่ใช้มนุษย์คัดกรองที่ทำได้เพียงแค่ประมาณ 73% เท่านั้น

ส่วนทางฝั่งยักษ์ใหญ่ Search Engine จากจีนอย่าง Baidu Research นั้น ก็ได้ทำการทดสอบ Deep learning algorithm ที่สามารถที่จะระบุถึงการแพร่กระจายของมะเร็งเต้านม ได้ดีกว่าการวิเคราะห์จากมนุษย์

ส่วนทางด้านประเทศอังกฤษ นายกรัฐมนตรี Theresa May ก็ได้ประกาศวาระสำคัญของชาติ คือ AI Revolution ซึ่งจะช่วยเหลือ National Health Service (NHS) ซึ่งคงคล้ายๆ  สปสช. ของบ้านเรา ในการช่วยทำนายผู้ป่วยที่มีโอกาสเกิดโรคมะเร็ง โดยการวิเคราะห์จาก ข้อมูลทางด้านสุขภาพ พฤติกรรมการใช้ชีวิต รวมถึงพฤติกรรมการรับประทานอาหาร และยังวิเคราะห์จากข้อมูลทางด้าน พันธุกรรมของคนไข้ เพื่อช่วยทำนายว่า คนไข้ มีความเสี่ยงที่จะเป็นโรคมะเร็งหรือไม่ โดยใช้ AI และข้อมูลจาก NHS

4. Workflow and administrative tasks

งานด้านเอกสารหรือธุรการต่าง ๆ ภายใน workflow ของระบบโรงพยาบาลนั้นก็เป็นต้นทุนสำคัญอย่างนึงของโรงพยาบาล ซึ่ง ประมาณได้ว่า ในปี ๆ หนึ่ง ๆ ในประเทศอเมริกา หากสามารถนำ AI มาช่วยงานเหล่านี้ได้นั้น สามารถที่จะลดต้นทุนไปได้กว่า 18,000 ล้านเหรียญ สหรัฐเลยทีเดียว

ซึ่ง AI สามารถที่จะช่วยเหลือในงานต่าง ๆ ได้ไม่ว่าจะเป็น voice-to-text transcriptions หรือการแปลงจากเสียงมาเป็นtext  งานด้านเอกสารกำกับยา หรืองานที่เกี่ยวข้องกับ chart notes

ซึ่งตัวอย่างนึงที่ใช้ AI ในการช่วยเหลืองานด้าน Admin คือการร่วมมือกันระหว่าง Cleveland Clinic และ IBM โดยมีการนำเอา IBM’s Watson มาช่วยในการวางแผนการรักษาให้กับแพทย์ โดยทำการวิเคราะห์จากข้อมูล medical record โดยใช้เทคโนโลยี Natural language processing เพื่อช่วยวางแผนการรักษาให้กับแพทย์ได้อย่างมีประสิทธิภาพมากยิ่งขึ้น

5. Image analysis

ต้องบอกว่าเป็นงานที่สำคัญอย่างหนึ่งเลยสำหรับการวิเคราะห์ภาพเช่นในการ ทำการ X-RAY , MRI หรือ Ultrasound ซึ่ง effect โดยตรงต่อผู้ป่วย เพราะเป็นการวิเคราะห์ ให้เจอสาเหตุของโรคต่าง ๆ ที่เกิดขึ้นกับผู้ป่วย

ซึ่งโดยปรกติแล้วนั้นงานทางด้าน Image Analysis โดยผู้เชี่ยวชาญนั้น เป็นงานที่ต้องใช้เวลาในการวิเคราะห์เป็นอย่างมาก

ตัวอย่างสำคัญในการวิเคราะห์ที่ทำให้ process เหล่านี้ทำได้รวดเร็วขึ้น คือ ในงานวิจัยของ MIT ได้ทำการพัฒนา machine learning algorithm ที่สามารถจะวิเคราะห์ภาพ Scan 3D จากการถ่าย MRI , CT-SCAN โดยสามารถที่จะวิเคราะห์ได้เร็วกว่าผู้เชี่ยวชาญที่เป็นมนุษย์ถึง 1000 เท่า ซึ่งเป็นตัวเลขที่น่าสนใจเลยทีเดียว

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

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

AI จะเข้ามาช่วยเหลือหรือแย่งงานจากคนในอุตสาหกรรม Healthcare

ต้องบอกว่าด้วยพื้นฐานทางเทคโนโลยีในปัจจุบันไม่ว่าจะเป็นด้าน AI , Machine Learning รวมถึงเทคโนโลยีทางด้านหุ่นยนต์ กล้อง รวมถึงเซ็นเซอร์อัจฉริยะ ต่าง ๆ นั้น ถึงแม้จะยังไม่ผลิตออกมาเป็นผลิตภัณฑ์ที่มาช่วยเหลือแพทย์ได้ทุกแขนงในปัจจุบัน หรือยังเป็นงานวิจัยอยู่ก็ตาม เราต้องยอมรับว่า เทคโนโลยีเหล่านี้ได้ไปไกลเกินความสามารถของเหล่าผู้เชี่ยวชาญที่เป็นมนุษย์ในปัจจุบันแล้ว

ซึ่งต้องยอมรับเช่นกันว่าเครื่องมือเหล่านี้ล้วนมาช่วยเหลือแพทย์ผู้เชี่ยวชาญ รวมถึงผู้เกี่ยวข้องในอุตสาหกรรมนี้ได้อย่างมาก จนหลาย ๆ งานสามารถที่จะเข้าไปทดแทนงานของมนุษย์ได้จริง แต่งานที่เกี่ยวข้องกับคนไข้นั้นยังไง ผู้ป่วยย่อมจะไม่ยอมรับผลการรักษา 100% จาก AI แน่นอนอยู่แล้ว

แต่อย่างไรก็ดีในอนาคตอันใกล้ หากเทคโนโลยีเหล่านี้พัฒนาจนเป็นที่ยอมรับของมนุษย์ได้ 100% จริง ๆ เหมือนที่ใครจะคิดว่าจะมีรถยนต์อัตโนมัติ มาวิ่งให้เรานั่งได้กันแบบสบาย ๆ  ซึ่งก็เช่นเดียวกัน ในวงการอุตสาหกรรม Healthcare นั้น ต่อไปเราก็อาจจะได้เห็น ทุก process ที่เกี่ยวกับคนไข้ สามารถทำได้โดยผ่าน AI หรือ Robot ได้จริง ๆ ตั้งแต่ การเตรียมข้อมูลคนไข้ ไปจนถึงงานระดับยาก ๆ อย่างการผ่าตัดหัวใจ หรือสมอง ซึ่งผมเชื่อว่า หากมีการแข่งขันกันจริง ระหว่างมนุษย์กับผู้เชี่ยวชาญ ไม่ว่าสาขาใด ๆ แม้จะงานยากขนาดไหนก็ตาม ก็จะพบจุดจบเดียวกันกับที่ Alpha go สามารถชนะ Lee Sedol มนุษย์ที่เล่นเกมโกะได้เก่งที่สุดในโลก เพราะตอนนี้เราต้องยอมรับว่า AI มีขีดความสามารถเกินกว่าที่มนุษย์เราจะทำได้เป็นที่เรียบร้อยแล้ว

References : www.forbes.com

ติดตาม ด.ดล Blog เพิ่มเติมได้ที่
Fanpage :facebook.com/tharadhol.blog
Blockdit :blockdit.com/tharadhol.blog
Twitter :twitter.com/tharadhol
Instragram :instragram.com/tharadhol

การพัฒนา AI เพื่อ Trade หุ้นไทยด้วย Machine Learning

ปัจจุบันนั้น เทคโนโลยีทางด้าน AI หรือ Machine Learning กำลังเป็นที่สนใจในหลาย ๆ ธุรกิจ ที่จะนำมาพัฒนาเครื่องมือต่าง ๆ เพื่อช่วยเหลือการดำรงชีวิตของมนุษยเราให้สะดวกมากยิ่งขึ้น ในแวดวงของการลงทุน AI ก็เริ่มเข้ามามีบทบาทมาช่วงหนึ่งแล้ว ซึ่งเราจะได้เห็นโฆษณาต่าง ๆ ผ่านหน้าผ่านตากันมาบ้าง ว่ามีกองทุนที่พัฒนาโดย AI มาคอยช่วยเหลือการ trade

งานวิจัยหลาย ๆ งานที่ได้ตีพิมพ์ในต่างประเทศนั้น ก็มีความน่าสนใจ ในแง่ของผลของการทดลองที่นำ AI มาช่วยประมวลผล และช่วยเหลือในการ trade ตัวอย่าง การวิเคราะห์ Market Trend ของหุ้น โดยใช้ปัจจัยพื้นฐานด้านข่าว ที่ผมเคยเขียน blog ไปก่อนหน้านี้ก็เป็นงานที่น่าสนใจ ที่นำปัจจัยเรื่องข่าวมาช่วยประมวลผล เพื่อทำการทำนาย market trend ที่กำลังจะเกิดกับหุ้นชื่อดังอย่าง AAPL ของ บริษัท apple ซึ่งผลนั้นก็ได้ความแม่นยำในระดับสูงกว่า 80%  ซึ่งถือว่าเป็นผลที่น่าสนใจไม่ใช่น้อย

Support Vector Machine ก็เป็น algorithm หนึ่งที่น่าสนใจที่สามารถจำแนกและทำนายได้แม่นยำค่อนข้างสูงในหลาย ๆ case ตัวอย่างงานวิจัยที่ส่วนตัวเคยได้ทำ คือ Support Vector Machine กับการวิเคราะห์มะเร็งเต้านม  ซึ่งเป็นการจำแนกมะเร็งเต้านมจาก Mammogram Image ได้ ซึ่งได้ความแม่นยำค่อนข้างสูงกว่า 90%  แต่ปัจจัยหลักที่สำคัญสำหรับการจำแนกนั่นก็คือ Attribute หรือ Features ที่เป็นค่า input เพื่อให้ algorithm ทำการ train และ จำแนกนั้นก็เป็นปัจจัยสำคัญที่มีผลต่อความแม่นยำในการทำนายผล

ในวงการตลาดการเงิน หรือ commodity นั้นก็เริ่มมีการใช้โปรแกรมเข้ามาทำการช่วย trade มาเป็นเวลานานแล้ว ซึ่งจะเรียกว่า EA หรือ Expert Advisor ซึ่งมีหลายตัวที่น่าสนใจ และสามารถพัฒนาให้เทรดได้ดีกว่ามนุษย์ซึ่งในประเทศไทย ก็มีคนไทยได้พัฒนาอยู่มากมายในตลาด ด้วยการใช้ computer algorithm มาช่วยโดยผ่านการเขียนเงื่อนไขการทำงานแบบต่าง ๆ เพื่อทำตาม strategy การ trade ที่ตัวเองต้องการ ซึ่งสามารถใช้ภาษา mql4 ซึ่งเป็นภาษา Basic ที่สามารถเรียนรู้ได้ไม่ยาก และสามารถนำมาพัฒนา EA ได้ไม่ยาก

แต่ภาษา mql4 นั้นถูก design มาอย่างมีข้อจำกัดหลาย ๆ อย่าง ทำให้ไม่สามารถพัฒนาโปรแกรมที่ซับซ้อนได้มากเท่ากับ ภาษา mql5 ซึ่งเป็นภาษาที่ใหม่กว่า และมีการ design แบบลักษณะ Object-oriented programming สามารถที่จะเชื่อมต่อกับ interface ต่างๆ  ข้างนอกได้ง่ายกว่าทั้ง device ต่าง ๆ รวมถึง network หรือ ระบบ cloud รวมถึง รองรับ timeframe ที่มากกว่า และสามารถพัฒนาโปรแกรมที่เข้าถึงเชิงลึกของ  market ได้อย่างมีประสิทธิภาพมากกว่าภาษา mql4 โดยเฉพาะการทำงานด้าน AI ที่ใช้ Machine Learning ซึ่ง MT5 จะมี library มากกว่า

MT5 กับ ตลาดหุ้นไทย

โดยส่วนตัวก็คอยดูอยู่ว่า broker เจ้าไหนจะนำ MT5 มาใช้กับหุ้นไทยได้ซักที ซึ่งก็มีประกาศกันมานานแล้วเหมือนกัน โดยบอกว่าจะเริ่มใช้ได้กันตั้งแต่ปีที่แล้ว แต่ก็เลื่อนมาตลอด ซึ่งตอนนี้ก็มี applewealth ที่รองรับการใช้งาน MT5 และได้เปิดให้ trade จริงไปแล้วก่อนหน้านี้ แต่ที่โทรถามล่าสุดคือ ตอนนี้กลับมาปิดระบบอีกครั้ง ยังไม่มีกำหนดเปิดใหม่ แต่ส่วนของ demo นั้นเรายังสามารถนำมาทดสอบได้อยู่ ซึ่งผมก็จะมาแนะนำให้เตรียมตัวให้พร้อมสำหรับการสร้าง AI ด้วย algorithm Support Vector Machine เพื่อรอวันที่ตลาดหุ้นไทยเปิดให้ใช้อย่างเป็นทางการ

 

เข้า web site applewealth ส่วนของเครื่องมือการลงทุน->ทดลองใช้งานเพื่อ download MT5

 

ทำการ click Download : Installer MetaTrader 5 เพื่อทำการ download  MT5  มา install ลงเครื่องคอมพิวเตอร์

 

หลังจากนั้นก็ให้ทำการ install program ลงเครื่อง เมื่อ install เสร็จ ก็จะเข้าสู่ส่วนของการเลือก server ซึ่ง default ก็จะเป็น applewealth อยู่แล้ว ให้กด next และมาสู่ส่วนของการเลือก account ซึ่ง การทดสอบเราสามารถใช้ demo account ด้วยการเลือกที่ new demo account ได้

 

 

จากนั้นก็จะเข้าสู่ในส่วนของ Personal Details ซึ่งเราก็กรอกข้อมูลทั้งหมดเข้าไป account type ก็ทำการเลือก SET  ส่วน Deposit นั้นคือเงินที่จะใช้ในการทดสอบ ซึ่งคล้าย ๆ demo ของ streaming pro ซึ่งหลาย ๆ ท่านน่าจะคุ้นชินกันอยู่แล้ว หลังจากนั้นให้ทำการกด next

 

หลังจากเลือก new demo account เสร็จก็จะเข้าสู่หน้าจอ Main หลักของโปรแกรม ซึ่งจะประกอบด้วยส่วนต่าง ๆ ดังรูปข้างต้น ซึ่งจะประกอบไปด้วย ส่วนของ list รายการหุ้นไทยทั้งหมด ส่วนของ chart windows ซึ่งเราสามารถเลือกหุ้นที่ต้องการ monitor ได้ สามารถปรับ time frame รวมถึงรูปแบบของกราฟได้ และส่วนของ Navigator ซึ่งจะประกอบไปด้วย Indicators ต่าง ๆ รวมถึง Expert Advisors ซึ่งเป็นส่วนของ EA ที่จะใช้ในการ auto trade ซึ่งเราสามารถหา indicators รวมถึง EA ได้จาก Market ซึ่งมีให้เลือกใช้จำนวนมากมาย

 

สำหรับ Support Vector Machine Library นั้นเราจะสามารถซื้อได้จาก Buy from the Market ซึ่งจะเป็น online market ที่มีการจำหน่าย หรือ แจก indicators หรือ EA ต่าง ๆ ที่น่าสนใจอยู่มากมายตาม startegy การ trade ของท่านซึ่งท่านสามารถเลือกได้ตามใจชอบ เราสามารถที่จะนำตัว demo version เพื่อมาทดสอบดูผลการ trade ผ่าน strategy tester ได้ ซึ่งส่วนนี้ผมจะ focus ในการใช้ Machine Learning Library ของ Support Vector Machine เป็นหลัก

 

ให้เราเข้าในส่วนการค้นหาและพิมพ์คำว่า svm เข้าไป ก็จะได้ผลการค้นหาเป็น Library ของ Support Vector Machine ซึ่งขายอยู่ที่ราคา 20 USD ซึ่งหากเราอยากทดลองใช้เราก็สามารถเลือกที่ demo เพื่อนำมาทดสอบก่อนได้ แต่เนื่องจากผมได้ซื้อมาเป็นที่เรียบร้อยแล้ว จึงสามารถนำมาเขียน code และนำไปใช้งานใน graph จริง ๆ ได้

 

จากรูปข้างบน นั้นจะแสดงรายละเอียดของ Library Support Vector Machine ซึ่ง เราสามารถกดที่ปุมสีเหลืองด้านขวาบน เพื่อนำตัว demo มาทำการทดสอบผ่าน Strategy Tester ได้ แต่จะไม่สามารถนำไปใช้ทดลองใน graph จริง  ๆ ได้

 

สำหรับการใช้งาน EA ตัวอย่างสำหรับการใช้งาน Support Vector Machine นั้นผมได้ทำการสร้างตัวอย่างไว้ให้สามารถ download ได้จาก svm_thai_stock  ซึ่งประกอบด้วย 2 file คือ svm_thai_stock.ex5 และ svm_thai_stock.mq5  โดยสามารถ copy ไปยัง folder ของ Data Folder ซึ่งสามารถดูได้จากรูปด้านบน หรือเข้า menu File-> Open Data Folder และทำการ copy ทั้ง 2 file ไปยัง \MQL5\Experts ซึ่งจะเป็น folder ที่ใช้เก็บ EA ทั้งหมดเพื่อนำมาใช้งาน

 

Support Vector Machine คืออะไร

Support Vector Machine เป็นตัวแบบที่ใช้ในการระบุตัวบุคคลหรือ object  โดย SVM จะทำการแบ่งชั้นของข้อมูลด้วยระนาบหลายมิติ  จากข้อมูล 2 กลุ่มชุดข้อมูล  โดยตัวแบบของ SVM เกี่ยวข้องกับเครือข่ายประสาทเทียม ซึ่งโดยอันที่จริงแล้วตัวแบบของ SVM ใช้ Sigmoid Kernel Function ซึ่งมีค่าเท่ากันทั้ง 2 เลเยอร์เป็นตัวแบบที่ใช้ในการระบุตัวบุคคล  โดย SVM จะทำการแบ่งชั้นของข้อมูลด้วยระนาบหลายมิติ  จากข้อมูล 2 กลุ่มชุดข้อมูล  โดยตัวแบบของ SVM เกี่ยวข้องกับเครือข่ายประสาทเทียม

ซึ่งโดยอันที่จริงแล้วตัวแบบของ SVM ใช้ Sigmoid Kernel Function ซึ่งมีค่าเท่ากันทั้ง 2 เลเยอร์ ตัวแบบของ SVM มีความคล้ายคลึงกับเพอร์เซฟตรอนซึ่งเป็นข่ายงานประสาทเทียมแบบง่ายมีหน่วยเดียวที่จำลองลักษณะของเซลล์ประสาท  ด้วยการใช้ Kernal Function

โดยใน paper ที่ตีพิมพ์เกี่ยวกับ SVM นั้นจะเรียกตัวแปรในการตัดสินใจว่า คุณสมบัติและตัวแปรที่เปลี่ยนแปลงใช้ในการกำหนดระนาบหลายมิติ ซึ่งเรียกว่า โครงสร้าง (feature)  ส่วนการเลือกที่มีความเหมาะสมที่สุดเรียกว่า โครงสร้างในการคัดเลือก (feature selection)  จำนวนเซตของโครงสร้างที่ใช้อธิบายในกรณีหนึ่ง (เช่น แถวของการค่าที่เราคาดการณ์)  เรียกว่า  เวกเตอร์ (vector)  ดังนั้นจุดมุ่งหมายของตัวแบบ SVM คือการประโยชน์สูงสุดจากระนาบหลายมิติที่แบ่งแยกกลุ่มของเวกเตอร์ในกรณีนี้ด้วยหนึ่งกลุ่มของตัวแปรเป้าหมายที่อยู่ข้างหนึ่งของระนาบ  และกรณีของกลุ่มอื่นที่อยู่ทางระนาบต่างกัน  ซึ่งเวกเตอร์ที่อยู่ข้างระนาบหลายมิติทั้งหมดนี้เราจะเรียกว่า  ซัพพอร์ตเวกเตอร์ (Support Vectors)

 

เราใช้ Support Vector Machine ในตลาดหุ้นอย่างไร

การวิเคราะห์ทางด้านเทคนิคนั้นอยู่บนพื้นฐานของการใช้ข้อมูลที่ผ่านมาเพื่อคาดการณ์การเคลื่อนไหวของราคาในอนาคต อย่างไรก็ดี ตลาดหุ้นนั้นมีความผันผวนมาก และ การใช้เพียงแค่ indicator อย่างเดียวนั้นอาจจะเกิดข้อผิดพลาดทางด้านสถิติได้ ซึ่งการนำ Machine Learning มาใช้งานร่วมกับ indicators ต่าง ๆ เหล่านี้นั้นทำให้เพิ่มในส่วนของการ training data เพื่อให้ SVM ได้ทำการเรียนรู้ และ ประเมินความแม่นยำของการเข้า trade ซึ่งการประเมินในเรื่องความแม่นยำในการ trade ผ่านการ training ก่อนนั้น ทำให้เราสามารถวิเคราะห์ได้ว่า ควรเข้า trade ใน strategy นั้น ๆ หรือไม่

สำหรับ process การทำงานของ SVM Library มีดังนี้

 

วิธีการ Generated Training Inputs

สำหรับตัว indicators หรือค่า Features ที่เราต้องการนำมาใช้เป็น input นั้น ใช้วิธีการ initial ค่าจาก period ที่คุณต้องการ

 

จากตัวอย่าง code แสดงค่า indicators  iBearsPower , iBullsPower , iATR , iMomentum , iMACD , iStochastic , iForce สำหรับเป็น input ที่ใช้ในการ training โดยจะใช้ function ตามตัวอย่าง code คือ genInputs(handleB)  สำหรับการ generate ค่าตั้งต้นของ indicators ต่าง ๆ ที่เราสนใจ

 

 

สำหรับค่า offset และ ค่า N_Datapoints นั้นจะแสดงตามตัวอย่างรูปข้างบน โดยจะพิจารณาตามแทงเทียนของ timeframe นั้น ๆ เช่น Offset = 4 คือ เราใช้ input ก่อนหน้าแท่งเทียนปัจจุบัน จำนวน 4 แท่งเทียน ส่วน N_Datapoints ตามตัวอย่างในรูป = 6 เราจะนำค่าจากแท่งเทียนอีก 6 แท่งเทียนก่อนหน้าค่า offset ไปทำการ generate input ซึ่งจำนวน N_Datapoints นั้นยิ่งมากก็จะใช้เวลาในการ training เพิ่มมากขึ้นไปด้วย ซึ่งจะมีผลต่อความแม่นยำหรือไม่นั้น ก็อาจจะตอบได้ทั้งสองคำตอบ คือ มี หรือ ไม่มีเลยก็ได้ ซึ่งเราต้องหาค่า N_Datapoints ที่เหมาะสมที่สุดสำหรับการ training เพื่อให้ความแม่นยำเกิดขึ้นสูงสุด

 

สำหรับส่วนของ onbar function นั้น คือ เมื่อเกิดแท่งเทียนใหม่ตาม timeframe ระบบก็จำค่า indicator ณ เวลานั้น ๆ มาทำการ classify หาว่าควรที่จะเข้าทำการซื้อหุ้น ณ ขณะนั้นหรือไม่ หาก Opn_B = true คือ ระบบ predict ให้ซื้อ

 

จาก onbar function หากระบบได้รับสัญญาณการเข้าซื้อก็จะเข้าสู่ function Open_Order เพื่อทำการซื้อผ่าน mt5 โดย Vol ก็คือจำนวนเงินที่จะใช้ในการเข้าซื้อ ซึ่งเราสามารถ set ในส่วนของ input data

 

สำหรับส่วนของ Insert_Stops นั้น เป็นการกำหนดจุด stopLoss และ จุดที่เราจะ takeProfit ซึ่ง จะมีหน่วยเป็น Pips  ซึ่งจะใช้กันในการ trade พวก currency หรือ commodity ซึ่งในหุ้นไทยนั้น ส่วนใหญ่จะหมายถึงการเคลื่อนของราคาที่ 0.01  ซึ่งหากเรา set ค่า takeProfit ไว้ที่ 100 pips คือ 0.01 * 100 = 1  ก็คือระบบจะปิดที่ ราคาปัจจุบัน + 1 บาท ถือเป็นจุด tp ของระบบ เช่นเดียวกับการ stoploss ก็ใช้หลักการเดียวกัน

 

ผลการทดสอบ

ผมได้ทำการทดสอบกับหุ้นไทยจำนวน 4 ตัวประกอบด้วย BDMS , BEAUTY , BH และ BMCL  ด้วย timeframe 15m  โดยใช้ offset ที่ 0 และ  N_DataPoints = 100 จุด takeprofit ที่ 100 pip และ stoploss ที่ 150 pip ด้วย indicators พื้นฐานตามที่ได้กล่าวข้างต้น ได้ผลการทดสอบดังนี้

1.BDMS

จากการ training นั้นได้ผลความแม่นยำที่ 78.0%

2.ฺBEAUTY

จากการ training ได้ผลความแม่นยำที่ 63.0%

3.ฺBMCL

จากการ training ได้ผลความแม่นยำที่ 50% ซึ่งถือว่าเทียบเท่าการโยนเหรียญ หัว-ก้อย

4.ฺBH

ถือว่าน่า surprise สำหรับ BH ที่ได้ค่าความแม่นยำจากการ training สูงถึง 87%

 

สรุป

จาก blog นี้นั้นเป็นการ guide ให้เห็นถึงแนวทางสำหรับการพัฒนา AI ที่ใช้ Machine Learning จริง ๆ เพื่อใช้ทดสอบความแม่นยำในการ prediction market trend ที่จะเกิดในอนาคต ซึ่ง จากตัวอย่างนั้นผมใช้เพียง indicators พื้นฐานเท่านั้นในการทดสอบความแม่นยำของ Support Vector Machine ซึ่งผลในหุ้นบางตัวอย่าง BH นั้นก็ถือว่าน่าสนใจไม่ใช่น้อยสำหรับควาแม่นยำที่สูงถึงระดับ 87% ซึ่ง ผมคิดว่าส่วนนี้เป็นแนวทางที่จะนำไปใช้พัฒนาต่อ สำหรับนักเทรดสายเทคนิคอล ที่มี strategy ที่ตัวเองนั้นถนัดอยู่แล้ว น่าจะลองมาใช้ machine learning เพื่อเพิ่มประสิทธิภาพในการ trade ดู ซึ่งผมคิดว่าน่าจะได้ผลที่ดีขึ้น

ซึ่งในส่วนของ Library ของ Support Vector Machine ใน MT5 นั้น ก็ได้ทำการปรับมาเพื่อใช้กับการ trade โดยเฉพาะ ทำให้สามารถใช้งานได้อย่างไม่ยาก แต่เราอาจจะ customise ได้ดั่งใจเราไม่มากเท่าที่ควร แต่หากต้องการการทำงานในระดับ Advance นั้นผมก็แนะนำให้ใช้เทคนิค การ call LIBSVM โดยอาจจะเรียกผ่าน Web Service หรือ http protocol  ซึ่งเราอาจจะสามารถ customise ได้มากกว่า และอาจจะให้ผลความแม่นยำที่สูงกว่า เหมือนงานวิจัยหลาย ๆ ชิ้นที่ผ่านมา

ส่วนค่า features หรือ input นั้น เราอาจจะไม่ได้ใช่แค่ indicators มาตรฐานมาใช้ในการ train เท่านั้น เราอาจจะสามารถกำหนด features ที่ต้องการเอง ตาม Strategy การเทรดของเรา ซึ่งคิดว่าหลาย ๆ ท่านนั้นก็น่าจะมี strategy การเทรดที่แตกต่างกัน หรือมีการพลิกแพลงค่าต่าง ๆ เช่นเส้น trend line หรือ เส้นแนวรับ แนวต้าน ก็เป็นสิ่งที่สามารถนำมาเป็น input ได้ ส่วนเรื่องข่าวก็เป็นสิ่งที่น่าสนใจที่จะสามารถนำมาใช้เป็น features ได้ ดังตัวอย่าง การวิเคราะห์ Market Trend ของหุ้น โดยใช้ปัจจัยพื้นฐานด้านข่าว ซึ่งผมคิดว่า AI ที่ใช้ Machine Learning นั้นจะมีบทบาทต่อวงการเทรดหุ้นของประเทศไทยอย่างแน่นอน อย่างที่หลาย ๆ บริษัทได้เริ่มพัฒนา AI ที่ใช้ในการ trade แล้ว ซึ่งต่อไปนั้น เราอาจจะไม่ได้แข่งกับแค่ ต่างชาติ หรือ นักลงทุนสถาบันเท่านั้น เหล่าเม่าตัวน้อย ๆ อย่างพวกเรา  อาจจะต้องสู้รบปรบมือกับกองทัพ AI ในเร็ววันนี้ก็เป็นไปได้

 

References : www.mql5.com,www.dailynews.co.th

 

ติดตาม ด.ดล Blog เพิ่มเติมได้ที่
Fanpage : facebook.com/tharadhol.blog
Blockdit : blockdit.com/tharadhol.blog
Twitter : twitter.com/tharadhol
Instragram : instragram.com/tharadhol

การวิเคราะห์ Market Trend ของหุ้น โดยใช้ปัจจัยพื้นฐานด้านข่าว

ผมชอบอ่านงานวิจัยของต่างประเทศ ที่เกี่ยวข้องกับ Machine Learning หรือ AI เนื่องจากเคยผ่านงานด้านนี้มาบ้างดังที่ได้เคยเขียน blog Support Vector Machine กับการวิเคราะห์มะเร็งเต้านม  ซึ่ง AI น่าจะมีบทบาทมาก ๆ ในหลายๆ  ธุรกิจในอนาคตอันใกล้นี้

ซึ่ง Machine Learning นั้นก็ต้องส่วนหนึ่งของการพัฒนา AI ในปัจจุบัน ที่พัฒนาความสามารถให้มีความฉลาดเพิ่มมากยิ่งขึ้นจากการเรียนรู้ข้อมูล ที่มีจำนวนมหาศาลในปัจจุบัน ในวงการ trading ก็เป็นวงการหนึ่งที่คิดว่า AI น่าจะมีบทบาทสำคัญมาซักพักหนึ่งแล้ว ซึ่งหลาย ๆ คนอาจจะยังไม่ทราบว่าทุกวันนี้ เราไม่ได้ trade แข่งกับมนุษย์เท่านั้น เรายังต่อสู้กับ AI อีกจำนวนมาก ซึ่งทำให้เราเสียเปรียบเป็นอย่างมาก

งานวิจัยหลาย ๆ ปีก่อนหน้านี้นั้น เน้นไปที่การนำ Technical indicator ต่าง ๆ มาประมวลผล โดยใช้ Machine learning และทำการ prediction อนาคต  ซึ่ง หลาย ๆ งาน  ก็ได้ผลที่น่าสนใจเป็นอย่างยิ่ง แต่ความแม่นยำนั้นต้องบอกว่าถ้านำไปเทียบกับอย่างอื่น ถือว่าความแม่นยำนั้นยังน้อยอยู่มาก เนื่องจาก ภาวะตลาดมีความผันผวนสูง มีผู้เล่นมากหน้าหลายตา ทั้งกองทุนต่าง ๆ รวมถึงรายย่อย ทำให้ AI ไม่สามารถสร้างความแม่นยำในการ trade ได้

แต่ช่วง 2-3 ปีมานี้ เริ่มมีการวิจัยโดยใช้ทฤษฎีใหม่ ซึ่งนำเรื่องของการวิเคราะห์ข่าวสารมาเป็นปัจจัยหลักแทน เพราะ ข่าวสารนั้นมีผลกระทบต่อจิตวิทยาการเทรดของนักลงทุน โดยตรง นัก trade หลาย ๆ คนซื้อตามข่าว ขายตามข่าว ทำให้ข่าวค่อนข้างมีปัจจัยสำคัญต่อราคาหุ้น เป็นอย่างมาก

แต่การวิเคราะห์เรื่องข่าวนั้น ไม่ได้เป็นสิ่งที่ง่ายเลย เผอิญ ผมได้ไปเจองานที่น่าสนใจ คือ Stock Trend Prediction Using News Sentiment Analysis  ซึ่งเป็นการศึกษาที่ใช้รูปแบบของ News Sentiment Analysis หรือการวิเคราะห์ข่าวเป็นปัจจัยที่จะส่งผลต่อการทำนายราคาขึ้นลงของหุ้นในวันถัดไป ซึ่งปัจจุบันนั้น นักลงทุนมีรูปแบบการทำนาย Market Trends ของตลาดในสองรูปแบบหลักคือ การวิเคราะห์ทางด้านเทคนิคอล โดยใช้ indicator ข้อมูลต่าง ๆ ส่วนอีกรูปแบบคือ การวิเคราะห์ปัจจัยพื้นฐานของหุ้น

โดยในงานวิจัยนี้ จะ follow ตามรูปแบบของการวิเคราะห์ปัจจัยพื้นฐาน ในการทำนาย future trend ของหุ้นนั้น ๆ โดยจะพิจารณาจาก ข่าวที่มีผลกระทบต่อหุ้นตัวนั้น ๆ เป็นหลัก และ ใช้ computer algorithm ในการแบ่งประเภทของข่าว ว่าเป็นข่าวที่ดี หรือ ข่าวที่แย่ ต่อหุ้นนั้น ๆ โดยนำเสนอว่า หาก เป็นข่าวดี ก็จะมีโอกาสทำให้หุ้นตัวนั้นขึ้น แต่หากในทางตรงกันข้ามที่เป็นข่าวแย่ ๆ ก็จะทำให้หุ้นตัวนั้นลง ตรงนี้ฟังดูเหมือนจะง่าย แต่การทำจริงนั้นยาก ๆ มาก ๆ เพราะ ข่าวมาจากหลายแหล่งหลายข่าวสาร รวมถึง วิธีการวิเคราะห์เนื้อหาของข่าวนั้นก็เป็นปัจจัยหลักที่จะแบ่งแยกว่าเป็นข่าวดีหรือข่าวร้าย ซึ่งการใช้คนอ่านนั้น ก็อาจจะไม่ยากเท่าไหร่ แต่สำหรับ AI นั้นเราจะทำอย่างไรในการแยกข้อมูลเหล่านี้ที่มีอยู่จำนวนมหาศาล

 

System Design

งานวิจัยได้แบ่งการ design เป็น 3 phases โดยใน phase แรกนั้นจะเป็นส่วนของการวิเคราะห์ข่าว เพื่อหา Polarity Score เพื่อเป็น input ให้กับ phase 2 โดยที่ ใน phase 2 นั้นจะนำ document มา converted เป็น tf-idf vector space เพื่อให้สามารถทำการจำแนกข้อมูลได้   โดยจะใช้ เทคนิคในการทำจำแนกข้อมูล 3 แบบคือ Random Forest , Naive Bayes  และ SVM หรือ Support Vectore Machine ที่ผมเคยกล่าวถึงใน blog ก่อนหน้านั่นเอง การใช้ถึง 3 เทคนิค นั้นก็เพื่อวัด performance ว่าเทคนิคไหนจะให้ความแม่นยำสูงสุด

ส่วน phase สุดท้ายนั้น จะทำการเช็คความสัมพันธ์ระหว่าง ข่าว และ ราคาหุ้น โดยจะใช้การ plot ข้อมูลทั้งสองโดยจะใช้ภาษา R

News Collection

ผู้วิจัยได้ใช้ข้อมูลของ บริษัท Apple โดยจะเก็บข้อมูลย้อนหลัง 3 ปี ตั้งแต่ 1 กุมภาพันธ์ ปี 2013 ถึง 2 เมษายน ปี 2016  โดยข้อมูลนั้นจะรวมถึง ข่าวจาก events หลัก ๆ ทั้งหมดของ apple รวมถึงราคาหุ้นของ AAPL ในช่วงเวลาเดียวกัน  โดยข้อมูลของหุ้นนั้นจะประกอบด้วย 6 ข้อมูลหลัก คือ Open , High , Low , Close , Adjusted Close และ Volume  โดยข้อมูลของข่าวหลัก ๆ นั้นจะมาจากหลาย ๆ สื่อที่เป็นข้อมูล online เช่น  news.google.com , reuters.com finance.yahoo.com

Pre Processing

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

โดยใช้ข้อมูลอ้างอิงจาก  McDonald’s research  ซึ่งได้ทำการวิจัยข้อมูลที่เกี่ยวข้องกับ finance ไว้เป็นทีเรียบร้อยแล้ว ซึ่งจะตัดเหลือข้อมูลที่เกี่ยวข้องกับหุ้นจริง ๆ เช่น  วันที่ ตัวเลข ต่าง ๆ รวมถึง สกุลเงิน  และเพื่อหลีกเลี่ยง คำบางคำ ที่มีความหมายเดียวแต่ใช้ในหลายเหตุการณ์ เช่น คำว่า ‘developed’ , ‘development’ , ‘developing’ นั้นจะถูกทำให้กลายเป็นคำ ๆ เดียวคือ ‘develop’

Sentiment Detection Algorithm

สำหรับการวิเคราะห์ว่าข่าวใดจะเป็นข่าวดี หรือ ข่าวร้าย ให้ได้แบบอัตโนมัติ หรือ sentiment detection นั้น ทางงานวิจัยนั้นใช้ dictionary จากงานวิจัยของ J.Bean ที่เคยทำการวิเคราะห์โดยนำข้อมูลจาก twitter มาใช้ในการวิเคราะห์ทรรศนะคติที่มีต่อสายการบินผ่านข้อมูลจาก feed ใน twitter

ซึ่งการที่จะวิเคราะห์ว่าข่าวจาก article ไหนเป็นข่าวดีหรือข่าวร้ายนั้น ต้องแบ่งคำเป็น 2 ประเภท คือ positive words และ negative words  และทำการนับรวมคำทั้งสองประเภท เพื่อทำการคำนวณ score จากข่าวนั้น ๆ ซึ่งจากข้อมูลของ McDonald’s research ทางผู้วิจัยได้สร้าง dictionary ที่มีคำที่เป็น positive words จำนวน 2360 คำ และ คำที่เป็น negative words จำนวน 7383 คำ โดยการคำนวน score นั้นก็จะนำเอา ผลรวมของ positive words ลบด้วย ผลรวมของ negatives words ในข่าวนั้น ๆ ซึ่ง หาก score มากกว่า 0 นั้น ก็สามารถ assume ได้ว่าข่าวนั้นเป็นข่าวดี  แต่หาก score น้อยกว่า 0 ก็สามารถ assume ได้ว่า ข่าวนั้น ๆ เป็นข่าวร้ายหุ้นที่เราทดสอบ (AAPL)

Classifier Learning

งานวิจัยนี้ได้ใช้ 3 เทคนิค ตามที่ได้กล่าวข้างต้นคือ Support Vector Machine , Random Forest และ Naive Bayes เป็นเทคนิคในการใช้จำแนก ซึ่ง การใช้ 3 เทคนิค ก็เพื่อทำการวัด performance ว่าเทคนิคไหนได้ความแม่นยำสูงที่สุด เมื่อทำการทดสอบกับข้อมูลใหม่

EVALUATION

งานวิจัยนี้ได้ทำการทดสอบ model ด้วยเทคนิคการทดสอบหลาย ๆ แบบ และในหลายเงื่อนไข เพื่อเปรียบเทียบผล โดยประกอบไปด้วย

  • 5-fold cross validation
  • 10-fold cross validation
  • 15-fold cross validation
  • 70% Data split
  • 80% Data split
  • New testing data

 

Figure1 three classifiers against different test options

Figure2 result with new data

 

Figure3 news sentiment score vs stock price

CONCLUSION

การที่จะทำนาย Market Trend ของราคาหุ้นนั้น เป็นสิ่งที่ยากมาก ๆ เพราะขึ้นอยู่กับหลายปัจจัย ซึ่งงานวิจัยนี้ได้สำเสนอในส่วนของปัจจัยพื้นฐานด้านข่าวที่มีผลกระทบต่อราคาหุ้น  ซึ่งจากผลการทดสอบนั้นจะพบว่าปัจจัยเรื่องข่าวนั้นเป็นปัจจัยที่สำคัญอย่างนึง ในการขึ้นลงของหุ้น  ซึ่งข่าวที่ดี หรือ แย่ นั้น การใช้ AI ในการแยกแบบ Automatic นั้นสามารถทำได้ โดยใช้เทคนิค ตามที่กล่าวข้างต้น  ข่าวที่ดีนั้นมีโอกาสสูงที่จะทำให้หุ้นราคาขึ้น ซึ่งตรงข้ามหากเป็นข่าวที่แย่ นั้นก็มีโอกาสสูงเช่นกันที่จะทำให้หุ้นราคาตก

สิ่งสำคัญอีกอย่างนึงที่จะวัดว่าเป็นข่าวดีหรือข่าวแย่ นั้น ข้อมูลจาก dictionary ตามงานวิจัยข้างต้นนั้นก็เป็นสิ่งสำคัญ การใช้ reference ของงานวิจัยที่ผ่านการทดสอบมาแล้วนั้น ทำให้ผลการทดสอบนี้มีประสิทธิภาพมากยิ่งขึ้น รวมถึงการลบข้อความที่เป็นขยะ ออกจากข่าว ซึ่ง มีผลกระทบต่อความแม่นยำในการจำแนกให้มีประสิทธิภาพ เพราะฉะนั้น ต้องใช้หลาย ๆ งานวิจัยที่เกี่ยวข้องร่วมกันเพื่อให้ผลการจำแนกดีที่สุด และผลจากการทดลองการจำแนกโดยใช้ 3 เทคนิค นั้น เทคนิค Random Forest สามารถจำแนกได้ผลแม่นยำสูงสุดในทุก test case โดยมีความแม่นยำสูงถึงระดับ 88% – 92%  โดยอันดับ 2 คือ Support Vector Machine ที่ให้ความแม่นยำประมาณ 86%  ส่วนเทคนิค Naive Bayes นั้นให้ความแม่นยำอยู่ที่ประมาณ 83%

แต่พอมาลอง test กับข้อมูลชุดใหม่นั้น จะพบว่า Support Vector Machine นั้นให้ความแม่นยำสูงถึง 90%  ตามมาด้วย Random Forest ที่ 80% และรั้งท้ายที่ Naive Bayes ที่ 75%  ซึ่ง โดยสรุปนั้นเราก็สามารถสรุปได้ว่า ข่าว เป็นปัจจัยหลัก ปัจจัยนึง ที่มีผลกระทบต่อราคาหุ้น อย่างแน่นอน ซึ่งเราสามารถนำข้อมูลเหล่านี้มาทำการวิเคราะห์และทำนาย Trend ที่จะเกิดขึ้นกับราคาหุ้น ๆ ที่เราสนใจได้ ซึ่งหากเราจะนำมาปรับใช้กับหุ้นไทยนั้น ก็คงจะต้องปรับกันพอสมควรโดยเฉพาะหากข่าวที่เป็นภาษาไทย ซึ่งไม่สามารถที่จะใช้การทดลองแบบนี้ได้แน่นอน แต่หากข่าวที่เป็นภาษาอังกฤษ นั้น คิดว่าผลน่าจะได้ใกล้ ๆ เคียงกัน ซึ่งก็เป็นสิ่งที่น่าสนใจที่จะมาทดสอบกับหุ้นไทยเหมือนกัน เพราะ เทคนิคต่าง ๆ ที่กล่าวในงานวิจัยนั้น สามารถนำมาใช้ได้ เพราะมีการ open ทั้งหมด ทั้ง เทคนิคการจำแนกอย่าง Support Vector Machine ก็สามารถโหลดมาใช้ได้ รวมถึง การใช้ Sentiment Detection Algorithm นั้นเราก็สามารถนำมันมา implement กับหุ้นไทยเพื่อทดสอบ model ข้างต้นได้

 

References :   arxiv.orgmotherboard.vice.com

AI ตัวช่วยหรือภัยคุกคามอาชีพแพทย์

จะเห็นได้ว่าปัจจุบันกระแสของ AI รวมถึง Machine Learning นั้นมาแรงมาก ซึ่งน่าจะกระทบกับชีวิตมนุษย์เราในอนาคตอันใกล้นี้ โดยส่วนนึงนั้นจะเข้าไปเกี่ยวข้องกับอุตสาหกรรมทางด้าน healthcare โดยตรง

จากข่าวก่อนหน้านี้ที่เราได้เห็น IBM ประกาศเข้าซื้อกิจการของ Merge Healthcare นั้น แสดงให้เห็นได้ว่าเทคโนโลยีของ AI เริ่มเข้าไปมีบทบาทโดยตรงกับธุรกิจ Healthcare อย่างแน่นอน  ซึ่งการที่ IBM มี AI อย่างระบบ Watson ที่ใช้เวลา R&D มาอย่างยาวนานมากนั้น ก็ทำให้ประสิทธิภาพของมันสามารถพ้นขีดจำกัดบางอย่างของมนุษย์ที่จะสามารถทำได้ไปแล้วโดยเฉพาะวงการการแพทย์

และทำไม IBM ถึงได้ลงเงินมหาศาลเพื่อทำการ take over บริษัท Merge ที่เป็นบริษัททาง Healthcare ก็จริงแต่ เน้นไปทางงานด้าน Imaging หรืองานด้านรังสีแพทย์เป็นส่วนใหญ่ เช่นระบบ PACS หรือ ระบบ RIS ที่เกี่ยวข้องเชื่อมต่อกับงานทางด้านรังสี

IBM ซื้อ Merge Healthcare

IBM ซื้อ Merge Healthcare

ซึ่งมันต้องเกี่ยวข้องกับ Watson ที่บริษัทยักษ์ใหญ่อย่าง IBM ทำการ R&D มาอย่างยาวนานอย่างแน่นอน โดย IBM จะให้ Watson นำร่องเข้าสู่ธุรกิจ Healthcare ซึ่งเป็นธุรกิจที่มีมูลค่ามหาศาล ผ่านข้อมูลมหาศาลของ Merge Healthcare ซึ่งการเข้ามาสู่งานด้านรังสีนั้น เนื่องจากเป็นส่วนที่เน้นไปทางด้าน digital แบบเต็ม ๆ สามารถให้ AI มาช่วยเหลือเพื่อเป็น Decision Support System ให้กับแพทย์ได้

IBM Watson

IBM Watson

รวมถึงข้อมูลมหาศาล ซึ่งหากนำไป training ผ่าน algorithm ทางด้าน machine learning ที่เป็น core หลักของ watson นั้น ก็จะทำให้ Watson มีความฉลาดขึ้น สามารถแยกแยะข้อมูล รวมถึงช่วยเหลือในการวินิจฉัยได้ง่ายขึ้นอย่างแน่นอน

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

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

ในอดีต ใครจะคิดว่าเราจะสามารถสร้างรถขับเคลื่อนอัตโนมัติได้

ในอดีต ใครจะคิดว่าเราจะสามารถสร้างรถขับเคลื่อนอัตโนมัติได้

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

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

 

Reference Image :  www.eetimes.com

 

 

Support Vector Machine กับการวิเคราะห์มะเร็งเต้านม

เนื่องจากในตอนเรียนปริญญาโท ผมได้มีโอกาสที่จะทำงานวิจัยที่เกี่ยวข้องกับการใช้ machine learning ในการวิเคราะห์การตรวจหามะเร็งเต้านมของผู้หญิง รวมถึงในปัจจุบันผมงานของตัวผมเองก็อยู่ใน domain นี้โดยตรง ซึ่งแม้จะเป็นเวลาหลายปีมาแล้ว แต่ช่วงนี้กระแสของ AI รวมถึง Machine Learning กำลังมาแรง จึงขอจะกล่าวถึงซักหน่อย รวมถึง algorithm ที่ผมเลือกใช้คือ Support Vector Machine เริ่มถูกพูดถึงในหลาย ๆ  วงการแม้กระทั่งวงการ trading  เนื่องจากมีความแม่นยำในการจำแนกค่อนข้างสูง

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

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

ในปัจจุบันยังไม่มีวิธีการใดที่สามารถรักษาโรคนี้ได้อย่างมีประสิทธิภาพเพียงพอ ซึ่งการตรวจหาผ่านการ X-Ray จึงเป็นปัจจัยสำคัญในการรักษาโรค และปรับปรุงอัตราการรอดตายที่เกิดขึ้นจากโรคมะเร็งเต้านม ซึ่งในปัจจุบันนั้นวิธีการที่มีความน่าเชื่อถือที่สุดในการตรวจหามะเร็งเต้านมนั้น คือ การวินิจฉัยผ่านคลังข้อมูลภาพทางการแพทย์ ที่มีการเก็บอย่างมีประสิทธิภาพ จากคลังข้อมูลที่มีขนาดใหญ่ ซึ่งระเบียบวิธีขั้นตอนดังกล่าวนั้นสามารถช่วยเร่งกระบวนการในการวินิจฉัยโรคได้อย่างรวดเร็ว แต่ก็ยังมี limit อยู่กับความสามารถของแพทย์ที่ไม่เท่าเทียมกัน รวมถึง แพทย์ที่ expert จริงๆ  ด้านนี้ยังมีอยู่น้อยมาก รวมถึงความแม่นยำในการวินิจฉัยนั้นยังมีข้อจำกัดอยู่ถ้าเทียบกับประสิทธิภาพของ AI

 

Support Vector Machine คืออะไร

Support Vector Machine  เป็นตัวแบบที่ใช้ในการระบุตัวบุคคลหรือ object  โดย SVM จะทำการแบ่งชั้นของข้อมูลด้วยระนาบหลายมิติ  จากข้อมูล 2 กลุ่มชุดข้อมูล  โดยตัวแบบของ SVM เกี่ยวข้องกับเครือข่ายประสาทเทียม ซึ่งโดยอันที่จริงแล้วตัวแบบของ SVM ใช้ Sigmoid Kernel Function ซึ่งมีค่าเท่ากันทั้ง 2 เลเยอร์เป็นตัวแบบที่ใช้ในการระบุตัวบุคคล  โดย SVM จะทำการแบ่งชั้นของข้อมูลด้วยระนาบหลายมิติ  จากข้อมูล 2 กลุ่มชุดข้อมูล  โดยตัวแบบของ SVM เกี่ยวข้องกับเครือข่ายประสาทเทียม

ซึ่งโดยอันที่จริงแล้วตัวแบบของ SVM ใช้ Sigmoid Kernel Function ซึ่งมีค่าเท่ากันทั้ง 2 เลเยอร์ ตัวแบบของ SVM มีความคล้ายคลึงกับเพอร์เซฟตรอนซึ่งเป็นข่ายงานประสาทเทียมแบบง่ายมีหน่วยเดียวที่จำลองลักษณะของเซลล์ประสาท  ด้วยการใช้ Kernal Function

โดยใน paper ที่ตีพิมพ์เกี่ยวกับ SVM นั้นจะเรียกตัวแปรในการตัดสินใจว่า คุณสมบัติและตัวแปรที่เปลี่ยนแปลงใช้ในการกำหนดระนาบหลายมิติ ซึ่งเรียกว่า โครงสร้าง (feature)  ส่วนการเลือกที่มีความเหมาะสมที่สุดเรียกว่า โครงสร้างในการคัดเลือก (feature selection)  จำนวนเซตของโครงสร้างที่ใช้อธิบายในกรณีหนึ่ง (เช่น แถวของการค่าที่เราคาดการณ์)  เรียกว่า  เวกเตอร์ (vector)  ดังนั้นจุดมุ่งหมายของตัวแบบ SVM คือการประโยชน์สูงสุดจากระนาบหลายมิติที่แบ่งแยกกลุ่มของเวกเตอร์ในกรณีนี้ด้วยหนึ่งกลุ่มของตัวแปรเป้าหมายที่อยู่ข้างหนึ่งของระนาบ  และกรณีของกลุ่มอื่นที่อยู่ทางระนาบต่างกัน  ซึ่งเวกเตอร์ที่อยู่ข้างระนาบหลายมิติทั้งหมดนี้เราจะเรียกว่า  ซัพพอร์ตเวกเตอร์ (Support Vectors)

 

Atrribute Reduction based on Atribute Importance Function

มี paper หลายตัวที่นำเสนอการใช้ Support Vector Machine ในการวิเคราะห์ มะเร็งเต้านม ซึ่งให้ค่าความแม่นยำไม่ต่างกันเท่าไหร่ในหลากหลายวิธี แต่ในตอนนั้นผมสนใจในเรื่องการ Improve Attribute base on Inportance Function ซึ่งเป็นการกรองคุณสมบัติ หรือ features ที่เป็นขยะออกไปให้มากที่สุด เนื่องจากเราใช้ค่าทางสถิติหลายอย่างในการจำแนก ซึ่งบางค่านั้นแทบจะไม่มีผลต่อความแม่นยำในการจำแนกผลเลยด้วยซ้ำ เทคนิค นี้ก็ทำเพื่อแยก คุณสมบัติที่มีผลต่อความแม่นยำจริง ๆ ให้ได้มากที่สุด ก่อนนำไป training

ซึ่งผมได้สนใจเป็นพิเศษในงานวิจัย  An Improved Attribute Reduction Algorithm  based on Attribute Importance function  ได้นำเสนอวิธีในการลดคุณลักษณะของข้อมูลโดยปรับปรุงส่วนของ Discernibility Matrix ของ Attribute โดยจะพิจารณาจากฟังก์ชั่นที่สำคัญ เมื่อนำข้อมูลมาแปลงในรูปแบบของ Binary Discernibility Matrix รวมกับการคุณสมบัติการลดคุณลักษณะโดยใช้ Rough Set Theory โดยจะลดคุณลักษณะที่ไม่จำเป็นออกโดยใช้ฟังก์ชันสำคัญของคุณลักษณะที่ได้ทำการปรับปรุงผ่าน ของ Matrix ซึ่งจะสามารถทำให้มีประสิทธิภาพที่ดีขึ้น

โดยการพิสูจน์ทำโดยวิเคราะห์ความเปรียบต่าง (contrast)  ซึ่งเมื่อมองใน time complexity นั้นจะมีประสิทธิภาพกว่างานวิจัยพื้นฐานของการใช้ Rough Set Theory ในการลดคุณลักษณะของข้อมูล วิธีการลดคุณลักษณะของ Matrix Binary Discernibility ซึ่งแม้ว่าคุณลักษณะที่ตรงกับคอลัมน์ใน Matrix ที่มีค่า “1” จำนวนมากนั้น ซึ่งในหลาย ๆ งานวิจัย  แสดงให้เห็นว่าสามารถลดส่วนที่ไม่จำเป็นออกไปได้โดยมองจาก Importance Function ซึ่งมองที่ จำนวนการเกิดของคุณลักษณะ และ ความยาวขององค์ประกอบของ Discernibility Binary Matrix ซึ่งจะได้ค่าฟังก์ชั่นดังนี้

 

เมื่อ mij คือ Binary Discernibility Matrix ซึ่งได้จากการแปลงข้อมูลที่เราสนใจโดยใช้การDicretizationซึ่งจากสมการนั้น Count(c) หมายถึงจำนวนรวมของ c attribute ที่ปรากฏใน matrix  Len c (mij) คือความยาวขององค์ประกอบใน matrix ที่มีคุณสมบัติ c

จากสมการจะได้ค่าตามอัตราส่วนของจำนวนลักษณะที่ปรากฏ และความยาวเฉลี่ยของ matrix ที่มีคุณสมบัติ c ซึ่งหมายความว่าถ้าการเกิดขึ้นของสองลักษณะที่แตกต่างกันจำนวนมาก ทำให้คุณลักษณะนั้นปรากฏมากขึ้น  ซึ่งส่วนที่สำคัญในการลดคุณลักษณะคือ คุณสมบัติที่มีจำนวนการเกิดที่โดดเด่นของข้อมูลที่มีคุณลักษณะ c

 

Feature extraction and Selection

คุณสมบัติด้าน Texture ได้รับการพิสูจน์จากงานวิจัยหลาย ๆ ชิ้น แล้วว่ามีประโยชน์ในเรื่องการจำแนกความแตกต่างของมวลและเนื้อเยื่อของเต้านมปกติใน digital mammograms ซึ่งสามารถแยกความปกติและผิดปรกติของเนื้อเยื่อรวมถึง microcalcifications  ซึ่งคุณสมบัติด้าน Texture นั้นจะทำการจำแนกโดยใช้ Gray level co-occurrence matrices (GLCM)  ซึ่ง matrices นั้นจะถูกสร้างจากระยะทาง d=1 และทิศทางของθให้เป็น 0 °, 45 °, 90 ° และ 135 °

ซึ่งการใช้เพียงทิศทางเดียวอาจจะไม่เพียงพอและทำให้ข้อมูลที่จำแนกมีความน่าเชื่อถือได้ด้วยเหตุนี้การใช้สี่ทิศทางจะใช้ในการจำแนกข้อมูล Texture ของแต่ละพื้นที่ใน digital mammograms ซึ่งการอธิบายค่าของ Texture จาก GLCM นั้นจะมีค่าที่เกี่ยวข้องคือ Contrast , energy , homogeneity และ correlation ของค่า gray scale  ซึ่งค่า energy ที่อยู่ในบาง element ของ GLCM นั้น สามารถอ้างได้ถึงรูปแบบของการเกิดก้อนเนื้อ ส่วนค่าของ Homogeneity นั้นจะสามารถอ้างได้ถึงการกระจายตัวขององค์ประกอบใน GLCM  ส่วนค่า Correlation นั้น จะแสดงถึงความสัมพันธ์ของ pixel ที่อยู่ใกล้เคียงกันของ image ซึ่งจากงานวิจัยส่วนใหญ่ นั้นใช้ฐานข้อมูลส่วนใหญ่ในขนาด 32*32  และใช้ขนาดเล็กสุดที่ 8*8  ซึ่งสามาถแสดงรายละเอียดดังนี้

 

Gray-level co-occurrence matrix (GLCM)

Gray-level co-occurrence matrix (GLCM) นิยมใช้เป็นอย่างมากในการวิเคราะห์โครงร่างของภาพ เนื่องจากโครงร่างของภาพเป็นคุณลักษณะที่สามารถมองเห็นได้โดยตรงจากภาพ ดังนั้น ในการพิจารณาโครงร่างของภาพจากค่าระดับเทาจะต้องใช้เมตริกซ์ ขนาด 2 มิติ gray-level co-occurrence matrix เป็นเมตริกซ์ 2 มิติ ซึ่งพิจารณาได้ จากการเกิดค่าระดับเทาซํ้าๆ กันในโครงร่างของภาพ (คุณสมบัติดังกล่าวเปลี่ยนแปลงตามระยะทางอย่างรวดเร็วในโครงร่างที่ละเอียด และเปลี่ยนแปงอย่างช้าๆ ในโครงร่างที่หยาบ) สำหรับการวิเคราะห์ส่วนที่เป็นโครงร่างของภาพจะใช้เมตริกซ์จัตุรัสที่มีขนาด M×M (M เป็นจำนวนค่าระดับเทาของภาพ) มาคํานวณ การเกิดค่าระดับเทาซํ้าๆ กันสามารถอธิบายได้ด้วยเมตริกซ์ที่มีความถี่ที่ สัมพันธ์กันซึ่งเขียนแทนได้ด้วย Pd,r(i,j) ซึ่งแทนความถี่ในการเกิดค่าระดับเทาที่ i และ j ในวินโดวส์ที่พิจารณา ด้วยระยะห่างเท่ากับ d ที่ทิศทาง r ความถี่ ของ gray-level co-occurrence matrix สามารถเขียนเป็นฟังก์ชันใน 4 ทิศทางที่ระยะทาง d ใดๆได้ดังนี้

เมื่อ |{…}| แทนเซตของค่าที่เป็นไปได้ตามเงื่อนไข

การจําแนกโครงร่างสามารถทําได้ด้วยการใช้เกณฑ์ในการพิจารณาลักษณะโครงร่างของพื้นผิวภาพ บางประการที่ได้จาก co-occurrence matrix ดังต่อไปนี้

ในหลาย ๆ งานวิจัย นั้นใช้การทำ pre-processing image ก่อนที่จะนำมาใช้ในการจำแนก โดยคุณสมบัติของการจำแนกนั้นจะมาจากฐานข้อมูล ซึ่งฐานข้อมูลดังกล่าวนั้นสามารถสร้างโดยการรวบรวมคุณลักษณะที่มีอยู่แล้วบางชนิด เช่น ชนิดของเนื้อเยื่อ (ความหนาแน่นของไขมัน และ ต่อมไขมัน ) และตำแหน่งที่มีความผิดปรกติ ( เช่น จุดศูนย์กลางของวงกลมรอบเนื้องอก) ที่ทำการจำแนกโดยคุณสมบัติ 4 อย่างทางสถิติ คือ mean, variance, skewnessและ kurtosis ซึ่งใช้สูตรสำหรับการคำนวณค่าทางสถิติแต่ละค่าดังนี้

ซึ่ง N หมายถึงจำนวน Gray Level ในภาพเต้านมโดย fk เป็นระดับสีเทา   ที่  nk คือจำนวน pixel ที่ fk เป็น Gray Level  และ n คือ จำนวน pixel ทั้งหมด

ซึ่งคุณสมบัติการจำแนกนั้นจะมีการคำนวณใน windows ที่มีขนาดเล็กของรูปต้นฉบับ โดยที่จะนำรูปต้นฉบับนั้นมาแบ่งเป็นสี่ส่วน เพื่อเพิ่มประสิทธิภาพในการจำแนกผล ซึ่งค่าสถิติต่าง ๆ ที่ได้ทำการคำนวณใน 16 ส่วนย่อยนั้น จะได้ค่าคุณสมบัติทั้งหมด 64 ค่าของแต่ละ image โดยจะนำค่าดังกล่าวไปประมวลผลกับเทคนิค Support Vector Machine เป็นลำดับต่อไป

 

Experiment

 โดยในการทดลอง ก็จะนำเทคนิคและงานวิจัยที่เกี่ยวข้องดังกล่าวมาพัฒนาและปรับปรุง ในด้านประสิทธิภาพการทำงานทั้งในเรื่องของความแม่นยำของการจำแนก และรวมถึงประสิทธิภาพในการประมวลผลข้อมูลให้ดียิ่งขึ้น โดยการทดลองจะเน้นที่การปรับปรุงส่วนของการคัดเลือกคุณลักษณะที่เหมาะสม เพื่อให้ SVM algorithm ทำงานได้อย่างมีประสิทธิภาพมากขึ้น ซึ่งจากงานวิจัย ก่อนหน้านั้นจะเห็นได้ถึงแนวทางในการปรับปรุงการคัดเลือกคุณลักษณะที่เหมาะสมโดยมองที่ฟังก์ชั่นสำคัญ ซึ่งจะเป็นการลดคุณลักษณะของข้อมูล และเมื่อเปรียบเทียบกับการใช้ Rough Set Theory แบบ General Model หรือ การใช้ Genetic algorithm ร่วมกับเทคนิคของ Decision Tree นั้น ก็เป็นแนวทางที่สามารถทำให้ได้ผลการทดลองมีประสิทธิภาพมากยิ่งขึ้น

ซึ่งเมื่อทำการศึกษาจุดอ่อนและจุดแข็งของแต่ละงานวิจัยที่เกี่ยวข้องกับการจำแนกภาพดิจิตอลแมมโมแกรมนั้น เราสามารถใช้เทคนิค ที่มีอยู่มาปรับใช้ได้อย่างมีประสิทธิภาพ จึงเป็นจุดที่ผมสนใจที่จะนำเทคนิคต่าง ๆ ที่เกี่ยวข้องมาปรับและเพิ่มเติมในส่วนที่เป็นข้อบกพร่องกับการทดลองให้มีประสิทธิภาพการทำงานที่ดีขึ้น และสามารถใช้กับข้อมูลจริง ที่ได้จากการทำงานจริงกับโรงพยาบาลที่มีเครื่องมือประเภท Digital Mammogram เพื่อใช้ในการวิเคราะห์รักษาและช่วยจำแนกประเภทของข้อมูลภาพเต้านม ร่วมกับผู้เชี่ยวชาญที่เป็นแพทย์ทางด้านรังสีวิทยาได้อย่างมีประสิทธิภาพมากยิ่งขึ้น
ซึ่งจากงานวิจัยที่เกี่ยวข้องนั้นสามารถนำมาปรับปรุงการคัดเลือกคุณลักษณะเพื่อเพิ่มประสิทธิภาพโดยใช้เทคนิคของ Reduction Attribute based on important function เพื่อปรับปรุงความแม่นยำและประสิทธิภาพการทำงานของการคัดเลือกและจำแนกโดยใช้ SVM Algorithm กับภาพประเภทดิจิตอลแมมโมแกรมซึ่งมี วิธีการดังนี้

 

ส่วนของ input data นั้นผมจะใช้ภาพดิจิตอลแมมโมแกรมจาก MIAS ( Mammogram Image Analysis Society) ซึ่งเป็นข้อมูลที่ใช้เป็นมาตรฐานของงานวิจัยที่ยอมรับในปัจจุบันและจากงานวิจัยที่เกี่ยวข้องกับการทำ Feature Extraction ของดิจิตอลแมมโมแกรมนั้น จะใช้เทคนิคของ GLCM  ในการ extract features ซึ่งจะได้ค่า features ที่มีประสิทธิภาพในการจำแนกผลที่ให้ความแม่นยำสูง

รวมถึงค่า features ทางด้านสถิติต่าง ๆ เพื่อเข้าสู่กระบวนการ Features Selection  โดยใช้พื้นฐานของงานวิจัยในด้านการลดคุณลักษณะ ( Reduction Attribute based on important function) โดยจะมีการแก้ไขข้อจำกัดในเรื่องของ significant weight ที่จากงานวิจัยตัวอย่าง นั้นจะมีข้อจำกัดในข้อมูลที่ทำการ discretization ออกมาแล้ว Matrix เหลือขนาดเล็กเกินไปทำให้การคำนวณค่า significant weight

จากงานวิจัยตัวอย่าง  นั้นจะมีการเลือกค่า Attribute ที่ตัดไปนั้นอาจจะมีผลต่อความแม่นยำในการจำแนก เพราะ สาเหตุของการเลือกค่า significant weight ที่มีค่ามากที่สุด ที่มีหลายค่านั้นทำให้ต้องมีการเลือกเพียง attribute เพียงตัวเดียว และ หากมีการเลือกตัวใดตัวหนึ่ง ก็จะมีผลต่อการเลือกในตัวต่อไป ซึ่งจะได้ผลการจำแนกที่แตกต่างกันเนื่องจากการเลือกลด Attribute ตัวใดไปแล้วจะมีผลต่อการเลือก Attribute ตัวถัดไปทันทีซึ่งถือเป็นจุดอ่อนของงานวิจัยชิ้นดังกล่าว

 

Experiment Results

ผมใช้เทคนิคการตรวจสอบ 10 fold cross validation techniques  เพื่อประเมินประสิทธิภาพของอัลกอริทึม และได้ทำการแบ่งฐานข้อมูลคุณลักษณะใน 10 แบบ สำหรับการแบ่งแต่ละครั้งที่เราเลือกไว้ประมาณ 90% ของชุดข้อมูลสำหรับการ training  และส่วนที่เหลือสำหรับการทดสอบ นั่นคือ 288 ภาพสำหรับชุด training  และ 34 ภาพสำหรับชุดทดสอบ ซึ่งฐานข้อมูลคุณสมบัติประกอบด้วยคุณสมบัติที่สกัดได้และข้อมูลที่มีอยู่ของภาพ 322 ภาพใน MIAS แอตทริบิวต์ที่เป็นตัวเลขทั้งหมดใช้วิธีการ extract features จากที่นำเสนอในหัวข้อข้างบน ผมขอเรียกการทดลองนี้เป็น ISVM เพื่อเปรียบเทียบกับ SVM แบบปรกติ  ซึ่งในขั้นตอนการ training  ISVM ถูกนำมาใช้กับข้อมูลการ training

จากนั้นสำหรับการจัดหมวดหมู่ในช่วงเวลาเดียวกันจำนวนของการเลือก Attributes  ต่าง ๆ  จะถูกบันทึกไว้โปรแกรม SVM ซึ่งมาจาก LIBSVM  ซึ่งเราได้ผลการทดลองดังนี้

จากตาราง แสดงการเปรียบเทียบในแง่ของจำนวน Attributes ที่เลือก และการจำแนกความถูกต้องของอัลกอริทึมที่ทำการทดลองคือ ISVM และอัลกอริทึมของ SVM คอลัมน์แรกคือ 10 fold cross validation ของ MIAS คอลัมน์ที่สองและสี่คือความถูกต้องที่แยกได้ของ SVM และ ISVM โดยพิจารณาจาก 10 fold ส่วนคอลัมน์ที่สาม Attributes number  คือจำนวนของการเลือกคุณลักษณะของ ISVM ที่ด้านล่างของ ตารางค่าเฉลี่ยของแต่ละคอลัมน์จะปรากฏขึ้น จากตารางสามารถสรุปได้ว่า  ISVM นั้นมีประสิทธิภาพ ดีกว่าอัลกอริธึม SVM เพียงอย่างเดียวในแง่ของความถูกต้องในการจำแนกประเภท ที่เวลาเดียวกัน แต่ต้องแลกด้วยเวลาที่เพิ่มขึ้นในการทำ Reduction base on Importance function แต่เราจะได้ Attributes จริงๆ ที่มีผลต่อการจำแนกมากกว่าการใช้ SVM ร่วมกับ Attributes ทั้งหมดที่เราสามารถ Extract ออกมาได้จริง

อย่างไรก็ดี การทดสอบนี้นั้นใช้ข้อมูลจาก MIAS เท่านั้นเพื่อนำมาทดสอบจึงทำให้ประสิทธิภาพในการจำแนกสูงถึงกว่า 90% แต่ในโลกของความจริงใน real world นั้น เราไม่สามารถได้รูปที่สมบูรณ์แบบเพื่อมาทำ Features Extraction ได้อย่างมีประสิทธิภาพ เนื่องด้วยปัจจัยหลายอย่างที่ไม่สามารถควบคุมได้เช่น Technician ที่ทำงานที่เราไม่สามารถ control ในส่วน Quality ได้อย่างมีประสิทธิภาพ  รวมถึงเครื่องไม้เครื่องมือต่างๆ  ซึ่งมีผลต่อคุณภาพของ Image ที่จะนำมาทดสอบ แต่ก็เป็นการทดลองที่เห็นแนวโน้มของการใช้ AI หรือ Machine Learning มาใช้กับ Healthcare ซึ่งน่าจะมีบทบาทสำคัญต่อไปในอนาคตอันใกล้นี้อย่างแน่นอน

 

ติดตาม ด.ดล Blog เพิ่มเติมได้ที่
Fanpage : facebook.com/tharadhol.blog
Blockdit : blockdit.com/tharadhol.blog
Twitter : twitter.com/tharadhol
Instragram : instragram.com/tharadhol

 

 

References : 

  1.      https://www.bedfordbreastcenter.com/mammogram-los-angeles/
  2.      http://ieeexplore.ieee.org/document/4731868/
  3.      http://www.mammoimage.org/databases/
  4.      https://link.springer.com/chapter/10.1007/978-3-540-73451-2_80
  5.      http://ieeexplore.ieee.org/document/1040110/
  6.      https://www.researchgate.net/publication/284700306_Medical_image_feature_extraction_selection_and_classification
  7.      https://www.ncbi.nlm.nih.gov/pubmed/21611053
  8.      http://elcvia.cvc.uab.es/article/view/216