Kanyawee Pornsawangdee

Kanyawee Pornsawangdee

Project Manager & Data Scientist Big Data Institute (Public Organization), BDI

บทความทั้งหมด

All Articles

Author Category Post Filter
Self-RAG คืออะไร มาช่วยให้ LLMs ทำงานดีขึ้นได้อย่างไร
ทุกวันนี้ Large Language Models (LLMs) ถูกนำมาใช้กันอย่างแพร่หลายมากขึ้นในปัจจุบัน หลายคนถือว่า LLMs ถูกผนวกรวมเป็นส่วนหนึ่งของชีวิตและการทำงานของเราอย่างขาดไม่ได้ แต่อย่างไรก็ตาม การประยุกต์ใช้งาน LLMs ก็ยังพบปัญหาและอุปสรรคบางอย่างอยู่ เช่น ปัญหาของการสร้างคำตอบที่ไม่ถูกต้องขึ้นมา (Hallucination) หรือปัญหาของชุดความรู้ที่ไม่อัปเดต ทำให้มีคนที่พยายามคิดค้นและพัฒนากระบวนการที่จะมาช่วยแก้ปัญหาตรงจุดนี้ ซึ่งวิธีที่จะมาช่วยแก้ปัญหาดังกล่าว เรียกว่า Retrieval-Augmented Generation (RAG)  RAG คืออะไร  Retrieval-Augmented Generation (RAG) คือ เทคนิคที่จะมาช่วยแก้ปัญหาต่าง ๆ ที่เป็นข้อจำกัดของ LLMs ในปัจจุบัน เพื่อให้ LLMs มีความถูกต้องและความน่าเชื่อถือมากยิ่งขึ้น โดยมีกระบวนการในการผนวกชุดความรู้จากแหล่งข้อมูลภายนอก (External Source) มาใช้ประกอบในกระบวนการสร้างข้อความผลลัพธ์ ซึ่งการใช้ RAG จะช่วยเพิ่มความถูกต้องและความน่าเชื่อถือของผลลัพธ์ที่ได้จาก LLMs โดยเฉพาะงานที่ต้องใช้ความรู้ที่เฉพาะเจาะจงมาก ๆ รวมถึงยังมีข้อดีที่ทำให้ผลลัพธ์ของ LLMs สามารถตอบคำถามจากการอ้างอิงชุดความรู้ที่มีการอัปเดตให้เป็นปัจจุบันได้โดยไม่ต้องทำการฝึกฝนหรือ Fine-tuning LLMs ใหม่เรื่อย ๆ โดย RAG นั้นประกอบไปกระบวนหลัก 3 ขั้นตอน ได้แก่ 1.) การสืบค้นเนื้อหาที่เกี่ยวข้อง (Retrieve) 2.) การเพิ่มเนื้อหาเข้าไปใน Prompt (Augment) และ 3.) การสร้างข้อความผลลัพธ์ (Generate) ซึ่งมีรายละเอียดของกระบวนการดังต่อไปนี้  RAG Workflow  ข้อจำกัดของ RAG ทั่วไป  ถึงแม้การใช้ RAG ใน LLMs จะช่วยให้ผลลัพธ์ที่ได้มีความถูกต้องมากขึ้น โดยการดึงข้อมูลสนับสนุนที่เกี่ยวข้องมาเป็นบริบทเพิ่มเติมสำหรับสร้างคำตอบที่เฉพาะเจาะจงขึ้น แต่อย่างไรก็ตาม บางกรณีการดึงข้อมูลที่ไม่เกี่ยวข้องออกมาใช้ อาจจะด้วยเหตุผลที่ว่าในแหล่งข้อมูลภายนอกที่ใช้อ้างอิงไม่มีเนื้อหาที่เกี่ยวข้องอยู่เลย หรืออาจจะเป็นที่ อัลกอริทึมของการสืบค้น (Retrieve) ไม่ดีเพียงพอ สิ่งเหล่านี้ก็มีผลทำให้ผลลัพธ์ที่ได้จาก LLMs แทนที่จะดีขึ้นกลับแย่ลงกว่าเดิมก็เป็นได้ เนื่องจาก RAG อาจทำให้ไปลดความสามารถในการตอบคำถามแบบ general ที่มีอยู่เดิมของ LLMs ที่ใช้ ด้วยเหตุนี้ Self-RAG จึงถูกพัฒนาขึ้นมาเพื่อมาช่วยปรับปรุงคุณภาพและความถูกต้องของผลลัพธ์ที่ได้จาก LLMs และไม่ทำให้ความสามารถที่มีอยู่เดิมของ LLMs หายไป ผ่านแนวคิด On-demand Retrieval และ Self-reflection  Self-RAG  Self-RAG (Self-Reflective Retrieval-Augmented Generation) เป็น Framework เช่นเดียวกับ RAG ที่มีการเพิ่มส่วนของการพิจารณาไตร่ตรองผลลัพธ์ของตนเอง (Self-reflection) เพื่อตัดสินใจว่าจะทำการสืบค้นข้อมูลเพิ่มเติมหรือไม่ (On-demand Retrieval) หรือจะข้ามการสืบค้นและใช้ผลลัพธ์ที่ได้จาก LLMs เลย ด้วยวิธีการนี้จะช่วยปรับปรุงผลลัพธ์จาก LLMs ให้มีคุณภาพและตรงตามความเป็นจริงมากยิ่งขึ้น โดย LLMs ที่ประยุกต์ใช้วิธีการนี้จะถูกฝึกฝนให้มีการสร้าง special token ที่ชื่อว่า “Reflection Token” ซึ่งเป็นผลที่ได้จากการพิจารณาว่า ควรดำเนินการอย่างไรกับผลลัพธ์ที่สร้างมาจาก LLMs เพื่อให้สามารถควบคุม และปรับการทำงานให้เหมาะสมเพิ่มเติม ผ่านการพิจารณา Reflection Token ที่ได้  Reflection Token สามารถแบ่งได้เป็น 2 ประเภทหลัก ได้แก่ “Retrieval Token” และ “Critique Token” โดย Retrieval Token จะเป็น Token ที่แสดงความจำเป็นของการสืบค้น หรือการตัดสินใจว่าจะทำการสืบค้นหรือ Retrieve ข้อมูลมาใช้เป็นเนื้อหาเพิ่มเติมใน prompt หรือไม่ ส่วน Critique Token จะเป็น Token ที่แสดงผลการวิเคราะห์คุณภาพของข้อความที่ถูกสร้างขึ้นมา เช่น ดูเนื้อหาของข้อความผลลัพธ์ที่ได้จาก LLMs ว่ามีความเกี่ยวข้องกับคำถามมากน้อยขนาดไหน ซึ่ง Critique Token ประกอบไปด้วย Token ย่อย 3 กลุ่ม ได้แก่ IsREL, IsSup, IsUse Tokens ดังแสดงในตารางด้านล่าง  การทำงานของ Self-RAG แบ่งเป็น 3 ขั้นตอนหลัก ได้แก่ 1) ดึงข้อมูล (Retrieve) 2) สร้าง (Generate) และ 3) วิจารณ์ (Critique) โดยมีรายละเอียดแต่ละขั้นดังต่อไปนี้  ขั้นตอนที่ 1 Retrieve on demand  จากภาพจะเห็นว่า หลังจากที่เราให้ input prompt กับ LLM ซึ่งโดยปกติ LLM จะให้ผลลัพธ์ออกมาเป็นข้อความที่ตอบคำถามที่เราใส่เข้าไปเท่านั้น แต่ในครั้งนี้ LLM จะถูกฝึกฝนมาให้สามารถทำการสร้าง Reflection Token ต่อท้ายข้อความได้ ซึ่ง Reflection Token ในตัวอย่างด้านบนนี้จะเป็นประเภท Retrieval Token ซึ่งจะเป็น token ที่บอกว่าการ retrieve ข้อมูลเพื่อใช้เป็นเนื้อหามา support เพิ่มน่าจะมีประโยชน์หรือไม่ ซึ่งถ้า Retrieval Token มีค่าเป็น yes โมเดลสำหรับทำการสืบค้น (Retriever Model) จะถูกเรียกเพื่อไปทำการสืบค้นเนื้อหาที่เกี่ยวข้องในฐานข้อมูลเป็นลำดับถัดไป  ขั้นตอนที่ 2 Generate segment in parallel  หลังจากที่ Retriever Model ทำการสืบค้นเนื้อหาหรือข้อความที่มีความเกี่ยวข้องขึ้นมา k อันดับแรก (Top k) ข้อความเหล่านั้นจะถูกนำไปใช้ประกอบรวมเพื่อเป็นบริบท (Context) ให้กับ prompt ตั้งต้น แล้วใส่เป็น input ให้กับ LLM เพื่อสร้างข้อความผลลัพธ์ออกมา ซึ่งผลลัพธ์ที่ได้จาก LLM ในรอบนี้จะมี Critique Token กำกับมาเพิ่มด้วยดังภาพ โดยเป็นการวัดคุณภาพของเนื้อหาที่ถูกสร้างจาก input context ที่ต่างกัน เพื่อวัดความเกี่ยวข้องของคำตอบที่ได้และความครบถ้วนหรือความครอบคลุมของคำตอบที่ได้ จากตัวอย่างจะเห็นว่าการใช้ context หมายเลข 1 จะได้ผลลัพธ์ที่เกี่ยวข้องกับคำถาม และครอบคลุมคำถามมากที่สุด  ขั้นตอนที่ 3 Critique output and select best segment ...
26 March 2024
Reinforcement Learning from Human Feedback (RLHF) เทคนิคเบื้องหลัง ChatGPT
คงเถียงไม่ได้เลยว่าเวลานี้ ChatGPT เป็นที่พูดถึงกันอย่างมากตั้งแต่มีการเปิดตัวโดย OpenAI ให้คนเข้าไปทดลองเล่นกัน ซึ่งมีการทดลองนำไปประยุกต์ใช้ในงานด้านต่าง ๆ มากมาย ไม่ว่าจะเป็น การสรุปเนื้อหาที่สนใจ การสร้างตัวอย่างซอร์สโค้ดเพื่อตอบโจทย์งานต่าง ๆ ถ้าใครมีโอกาสได้เข้าไปลองเล่นแล้วก็จะพบว่า ChatGPT สามารถพูดคุยโต้ตอบกับเราได้อย่างเป็นธรรมชาติมากจนน่าตกใจ โดยเบื้องหลังของ ChatGPT ที่ทำให้ข้อความที่สร้างออกมานั้นดูสมเหตุสมผลและเป็นธรรมชาตินั้น ได้มีการใช้เทคนิคที่เรียกว่า Reinforcement Learning from Human Feedback (RLHF) ในกระบวนการฝึกฝนโมเดล ซึ่งบทความนี้จะพาท่านผู้อ่านไปรู้จักกับเทคนิค RLHF กันว่ามีหลักการการทำงานอย่างไร RLHF คืออะไร Reinforcement learning from Human Feedback หรือเรียกสั้น ๆ ว่า RLHF เป็นเทคนิคหนึ่งในการฝึกฝนโมเดล โดยมีการใส่ความคิดเห็นของมนุษย์เข้าไปเป็นส่วนหนึ่งในการฝึกฝนผ่านกระบวนการเรียนรู้แบบ Reinforcement Learning ซึ่งการฝึกฝนโมเดลรูปแบบนี้ค่อนข้างมีความซับซ้อน เนื่องจากเทคนิคนี้จะประกอบไปด้วยการฝึกฝนโมเดลย่อยหลายส่วนโดยอาจแบ่งกระบวนการฝึกฝนเป็น 3 ส่วนหลัก ดังต่อไปนี้ Pretraining Language Models จุดเริ่มต้น RLHF จะใช้ Language Model ที่ได้มีจากฝึกฝนกับคลังข้อมูลภาษาบางอย่างไว้ก่อนหน้าแล้ว (pretrained model) ซึ่งในช่วงเริ่มต้นทาง OpenAI ได้ใช้ pretrained model ที่ชื่อว่า GPT-3 สำหรับใครที่อยากรู้รายละเอียดเพิ่มเติมเกี่ยวกับ GPT-3 สามารถเข้าไปอ่านได้ที่บทความ GPT-3 คืออะไร? ปัญญาประดิษฐ์ที่จะมาแย่งงานคนทั่วโลกในอนาคต โดยโมเดลตั้งต้นนี้จะถูกนำมาฝึกฝนเพิ่มเติม (Fine-tune) กับข้อมูลที่เป็นข้อความ (text) ที่เราสนใจได้ เช่น OpenAI ที่มีการ Fine-tuned กับ ข้อความที่สร้างโดยมนุษย์ (human-generated text) เพิ่มเติม จากนั้น Language Model ที่ผ่านการ Fine-tune แล้ว จะถูกนำมาใช้ในการสร้างข้อมูลสำหรับการฝึกฝน Reward Model ซึ่งจะเป็นกระบวนการที่เริ่มมีส่วนของความคิดเห็นหรือการพิจารณาโดยมนุษย์ถูกผนวกรวมเข้าไปในระบบด้วย Reward Model Training Reward Model เป็นโมเดลย่อยอีกส่วนหนึ่งสำหรับการเรียนรู้แบบ RLHF โดยการฝึกฝน Reward Model นี้ มีวัตถุประสงค์เพื่อสร้างโมเดลที่สามารถจำลองการตัดสินใจการให้คะแนนของมนุษย์ เนื่องจากเราไม่สามารถให้มนุษย์มานั่งให้ Feedback ของผลลัพธ์ข้อความที่ถูกสร้างจาก Language Model ทั้งหมดได้ว่าคำตอบแบบไหนที่เป็นคำตอบที่ดี หรือแบบไหนเป็นคำตอบที่ไม่ดี โดยโมเดลนี้จะถูกนำไปใช้ในการให้คะแนนผลลัพธ์ที่ได้จาก Language Model ซึ่งจะเป็นค่า Reward ที่จะนำไปใช้ในการปรับพารามิเตอร์ของ Reinforcement Learning Model เพื่อให้ได้ Language Model ที่ได้ Reward มากขึ้น ซึ่งกลไกนี้เองจะทำให้โมเดลได้เรียนรู้ในการสร้างข้อความให้มีความถูกต้อง เหมาะสม และดูเป็นธรรมชาติตามการรับรู้ของมนุษย์ สำหรับชุดข้อมูลที่ใช้ในการฝึกฝน Reward Model นี้จะถูกสร้างมาจาก Language Model ที่ได้ทำการฝึกฝนในขั้นตอนก่อนหน้า โดยจะเริ่มจากใส่ input เป็นชุดข้อความให้กับ Language Model ตั้งต้น โดยในที่นี้ทาง OpenAI ได้ใช้ชุดข้อมูล prompts ที่รวบรวมมาจากการระบุโดยผู้ใช้ตอนเรียกใช้ API ของ GPT จากนั้น Language Model จะสร้างข้อความที่เป็นผลลัพธ์ออกมา ซึ่งข้อความที่ได้จาก Language Model นี้จะถูกใช้เป็น input สำหรับการฝึกฝน Reward Model ต่อไป  ในกระบวนการฝึกฝน Reward Model จะมีส่วนของการให้คะแนนโดยมนุษย์ (Human Annotators) เพื่อใช้ในการจัดอันดับ (ranking) ให้กับข้อความที่ถูกสร้างมาจาก Language Model ซึ่งค่า Ranking นี้จะถูกใช้เป็นผลลัพธ์สำหรับการฝึกฝน Reward Model โดยการให้คะแนนข้อความผลลัพธ์นั้นมีหลากหลายวิธี โดยหนึ่งในนั้นคือการให้ผู้ให้คะแนนเปรียบเทียบผลลัพธ์ข้อความที่ถูกสร้างจาก Language Model 2 โมเดล ว่าผลลัพธ์จากโมเดลไหนดีกว่ากัน แล้วใช้เทคนิคที่ชื่อว่า Elo System เพื่อทำการคำนวณ Ranking ของผลลัพธ์แต่ละแบบ ถึงจุดนี้สำหรับกระบวนการ RLHF เราจะได้ Language Model ตั้งต้นที่สามรถใช้ในการสร้างข้อความ และ Reward Model ที่รับข้อความใด ๆ และให้ค่าคะแนนสำหรับข้อความนั้น ๆ ขั้นตอนถัดไปจะเป็นการฝึกฝน Language Model เพิ่มเติมด้วยกระบวนการ Reinforcement Learning (RL) เพื่อปรับค่าพารามิเตอร์ต่างๆของ Language Model ให้สามารถสร้างข้อความที่ได้ Reward หรือคะแนนจาก Reward Model สูงสุดได้ Fine-tuning with Reinforcement Learning ส่วนนี้เป็นการ Fine-tune หรือการปรับค่าพารามิเตอร์ของ Language Model ใหม่ที่ได้ทำการ Copy ค่าพารามิเตอร์ต่าง ๆ มาจาก Language Model ตั้งต้นให้เข้าใกล้จุดที่ดีทีสุดหรือได้ Reward มากที่สุด โดยใช้อัลกอริทึมที่ชื่อว่า Proximal Policy Optimization (PPO) โดยค่าพารามิเตอร์บางส่วนของ Language Model จะถูกบังคับไม่ให้เปลี่ยนแปลงค่า (Frozen) เนื่องจากการทำ Fine-tuning สำหรับพารามิเตอร์จำนวนมหาศาลนั้นค่อนข้างจะใช้ทรัพยากรค่อนข้างเยอะ จึงทำการลดให้เหลือจำนวนพารามิเตอร์ที่น้อยลงในการปรับค่า สำหรับเทคนิค PPO นั้นเป็นกระบวนการในการปรับค่าพารามิเตอร์เพื่อให้สามารถเข้าใกล้จุด Optimal ได้ดีที่สุด มีการพัฒนามานานแล้ว ถ้าใครอยากลองศึกษารายละเอียดเพิ่มก็สามารถเข้าไปอ่านหลักการได้ที่เว็บไซต์ของ Hugging Face  ก่อนอื่นลองมาทำความเข้าใจกระบวนการการทำ Fine-tune นี้ในรูปแบบของโจทย์ Reinforcement Learning (RL) กัน สำหรับในโจทย์นี้ Policy ของ Reinforcement Learning ก็คือตัว Language Model ที่มีหน้าที่รับข้อความเข้าและส่งผลลัพธ์ ออกมาเป็น Sequence ของข้อความ หรือข้อความที่น่าจะเป็นข้อความลำดับถัดไปออกมา โดยที่ Action Space ของ Policy นี้คือคำศัพท์ที่เป็นไปได้ทั้งหมดตามคลังคำศัพท์ที่มีใน Language Model ส่วน Observation Space คือ Token Sequence...
9 May 2023
Quantum AI: อนาคตของ AI ในยุคหน้า
การประมวลผลเชิงควอนตัม (Quantum Computing) และปัญญาประดิษฐ์ (Artificial Intelligence: AI) เป็นเทคโนโลยีที่จะมาทำให้เกิดการเปลี่ยนแปลงในโลกอนาคตอย่างมหาศาล การมีเทคโนโลยี Quantum Computing นั้นเป็นเครื่องมือที่จะช่วยนำพาให้เทคโนโลยี AI มีความก้าวหน้าขึ้นอย่างรวดเร็ว ถึงแม้ว่า AI บนแอปพลิเคชันต่างๆ จะถูกพัฒนาให้ประมวลผลได้บนคอมพิวเตอร์แบบคลาสสิก (Classical Computer) แต่ก็มีข้อจำกัดในเรื่องของความสามารถในการประมวลผล ด้วยเหตุดังกล่าว Quantum Computing จึงเป็นทางออกของการพัฒนาเทคโนโลยีในวงการ AI ให้สามารถสร้างแอปพลิเคชันที่มีความสลับซับซ้อนหรือสามารถทำงานที่ต้องการการประมวลผลจำนวนมากได้ เราเรียกศาสตร์นี้ว่า Quantum AI Quantum AI คืออะไร Quantum AI คือการประยุกต์ใช้ Quantum Computing สำหรับการประมวลผล หรือการคำนวณด้วยอัลกอริทึม Machine Learning โดยจะเป็นสิ่งที่จะมาช่วยให้การทำงานบางอย่างที่ไม่สามารถทำได้บนเครื่องคอมพิวเตอร์แบบทั่วไป (Classical Computer) สามารถเกิดขึ้นได้จริง ทำความรู้จักกับ Quantum Computing Quantum Computing เป็นการประมวลผลรูปแบบหนึ่ง มีนิยามในลักษณะเดียวกันกับการประมวลผลรูปแบบอื่น ๆ ตัวอย่างที่เรามักเคยได้ยินกันบ่อย ๆ เช่น Cloud Computing ซึ่งก็คือการประมวลผลที่อยู่บนคลาวด์ หรือ Mobile Computing ก็จะหมายถึงการประมวลผลที่อยู่บนมือถือหรืออุปกรณ์พกพาต่าง ๆ ในทำนองเดียวกัน Quantum Computing ก็คือการคำนวณหรือการประมวลผลต่าง ๆ ที่จะถูกทำโดยเครื่องคอมพิวเตอร์ควอนตัม ซึ่งทำงานแตกต่างออกไปจากเครื่องคอมพิวเตอร์แบบคลาสสิก (Classical Computer) ที่เราใช้งานกันโดยทั่วไป ที่ผ่านมานักวิจัยได้พิสูจน์แล้วว่าการประยุกต์ใช้ Quantum Computing ในงานบางประเภทสามารถทำได้ดีกว่าการประมวลผลแบบ Classical Computing อย่างมาก เช่น งานการแยกตัวประกอบของเลขจำนวนเต็มที่มีขนาดใหญ่ เป็นต้น การประมวลผลต่าง ๆ ไม่ว่าจะบนคอมพิวเตอร์ตั้งโต๊ะ (Desktop), บนอุปกรณ์เคลื่อนที่, หรือแม้กระทั่งบนเครื่องคอมพิวเตอร์ประสิทธิภาพสูง (High Performance Computer: HPC) ล้วนแต่ทำงานบนพื้นฐานการคำนวณแบบคลาสสิก (Classical Computation) ทั้งสิ้น โดยการประมวลผลแบบคลาสสิกจะอาศัยหน่วยการประมวลที่เรียกว่า บิต (bit) ซึ่งมีสถานะที่สามารถสังเกตได้เป็น 0 หรือ 1 อันเป็นตัวแทนของข้อมูลที่เกิดขึ้นจากสัญญาณเปิด-ปิดทางไฟฟ้า ส่วนในกรณีของควอนตัมคอมพิวเตอร์จะมีรูปแบบการประมวลผลผ่านการแทนข้อมูลด้วยสถานะของอะตอม ซึ่งหน่วยข้อมูลที่ใช้ในการประมวลผลของควอนตัมคอมพิวเตอร์จะถูกเรียกว่า คิวบิต (Qubits) หรือมาจาก Quantum Bit นั่นเอง ด้วยคุณสมบัติพิเศษตามหลักกลศาสตร์ควอนตัมนั้น ทำให้การประมวลผลด้วย Qubits ใน Quantum Computer มีจุดเด่นที่เหนือกว่า Classical Computer ใน 2 คุณสมบัติหลัก ได้แก่ การที่คิวบิตสามารถมีสถานะระหว่างการคำนวณได้มากกว่า 1 สถานะในเวลาเดียวกัน (แทนที่จะเป็น 0 หรือ 1 อย่างใดอย่างหนึ่งแบบ Classical Computing) และ การที่คิวบิตสามารถเกิดการพัวพันกันได้ (Entanglement) นอกจากนี้ก็ยังมีคุณสมบัติอื่น ๆ ที่ทำให้นักวิจัยสามารถออกแบบและพัฒนา Quantum Algorithm ที่ช่วยให้การแก้ปัญหาในโจทย์ที่ยากสามารถทำได้ในระยะเวลาอันสั้นได้ โดยธรรมชาติแล้ว Qubits จะเก็บข้อมูลในรูปแบบของความน่าจะเป็น แต่เราก็สามารถดำเนินการวัดผลเพื่อให้ได้ค่าที่แสดงถึงสถานะใดสถานะหนึ่งเหมือนในการคำนวณแบบคลาสสิกได้เช่นเดียวกัน ดังนั้นการทำ Operation ต่าง ๆ ในเชิงควอนตัมจะถูกดำเนินการก่อนการวัดผลเสมอ เนื่องจากการที่เราทำการวัดผลในแต่ละครั้งจะไปทำให้ผลลัพธ์ในเชิงความน่าจะเป็นถูกทำลายไป และได้ออกมาเป็นค่าใดค่าหนึ่งเท่านั้น ในทุกวันนี้การพัฒนางานวิจัยด้าน Quantum Computing เริ่มมีจำนวนมากขึ้นเรื่อย ๆ แต่ก็ยังคงมีความท้าทายอยู่อีกมากมาย ที่ผ่านมา Quantum Computer ได้รับการพัฒนาออกมาในหลายรูปแบบ ซึ่งแต่ละแบบก็ได้มีการประยุกต์ใช้ Qubits ในลักษณะที่แตกต่างกันออกไป Quantum AI ทำงานอย่างไร ล่าสุด Google ได้เปิดตัว TensorFlow Quantum (TFQ) ไปซึ่งเป็นไลบรารี Open-source สำหรับ Quantum Machine Learning โดยเฉพาะ จุดมุ่งหมายหลักของ TFQ คือการให้บริการเครื่องมือที่จำเป็นสำหรับควบคุมและสร้างโมเดล Machine Learning บนระบบควอนตัม โดยมีขั้นตอนในการพัฒนาและฝึกฝนโมเดลเชิงควอนตัมผ่านการใช้งาน TensorFlow Quantum ดังนี้ต่อไปนี้ ขั้นตอนอื่นถัดไปจะเป็นการประเมินค่า Cost Function ผ่านการคำนวณค่า Gradient และ การปรับค่าพารามิเตอร์ต่าง ๆ ซึ่งเป็นขั้นตอนลักษณะเดียวกันกับการทำ Deep Learning รูปแบบทั่วไป เพื่อให้ได้โมเดลที่มีประสิทธิภาพสูงสุดสำหรับการใช้งาน ความเป็นไปได้ของการประมวลผลเชิงควอนตัมในงานด้าน AI เป้าหมายขั้นต้นของนักพัฒนาสาย Quantum AI คือการพัฒนาอัลกอริทึมเชิงควอนตัมให้มีประสิทธิภาพเหนือกว่าอัลกอริทึมสำหรับคอมพิวเตอร์แบบดั้งเดิม ตัวอย่างอัลกอริทึมที่มีการพัฒนา ได้แก่ สรุป ถึงแม้ว่าเทคโนโลยีทางด้าน AI จะก้าวหน้าอย่างรวดเร็วในช่วงทศวรรษที่ผ่านมา แต่ก็ยังไม่สามารถเอาชนะข้อจำกัดทางเทคโนโลยีหลายอย่างได้ แต่ด้วยคุณลักษณะเฉพาะของการประมวลผลด้วยคอมพิวเตอร์เชิงควอนตัม อุปสรรคต่าง ๆ เพื่อไปถึง Artificial General Intelligence หรือ AI ที่มีความฉลาดที่ใกล้เคียงกับมนุษย์นั้นจะหมดไป เทคโนโลยี Quantum Computing สามารถใช้ในการฝึกฝนโมเดล Machine Learning ได้อย่างรวดเร็วและสามารถสร้าง Optimized Algorithm ผ่านการคำนวณเชิงควอนตัม ทำให้การวิเคราะห์ที่ใช้เวลาหลายปีให้เสร็จภายในเวลาอันสั้น ซึ่งจะนำไปสู่ความก้าวหน้าทางเทคโนโลยีที่เติบโตขึ้นอย่างก้าวกระโดด ด้วยเหตุนี้ Quantum AI จึงเป็นหนึ่งในทางออกที่มีความเป็นไปได้มากที่สุดสำหรับ AI ในยุคหน้า ที่มา: In-Depth Guide to Quantum Artificial Intelligence in 2022 (aimultiple.com) State of Quantum Computing in 2022 EOY for Business Leaders (aimultiple.com) Overview of Quantum AI | Engineering Education (EngEd) Program | Section
31 August 2022
การตรวจสอบคำขอสิทธิบัตรที่ใกล้เคียงกันโดยใช้เทคนิคการประมวลผลภาษา (Investigation of similar patent using NLP)
ปัจจุบันมีนักวิจัยและนักประดิษฐ์มากมายทำงานกันอย่างหนักเพื่อสร้างผลงานวิจัยและสิ่งประดิษฐ์ใหม่ๆ หลายครั้งผลงานเหล่านี้หากเป็นผลงานใหม่ที่ไม่เคยมีมาก่อน สามารถนำไปสู่การขอสิทธิบัตร (Patent) ได้ โดยสิทธิบัตรนั้นถือเป็นเครื่องแสดงทรัพย์สินทางปัญญารูปแบบหนึ่งที่ให้ความคุ้มครองการประดิษฐ์ ไม่ให้ผู้อื่นใดทำการลอกเลียนหรือจำหน่ายสิ่งประดิษฐ์นั้นๆ หากยังอยู่ในระยะเวลาการคุ้มครอง กรมทรัพย์สินทางปัญญา นำโดย กองสิทธิบัตร เป็นหน่วยงานหลักที่มีภารกิจในการกำกับและให้บริการจดทะเบียนสิทธิบัตร โดยมีการตรวจสอบคำขอรับสิทธิบัตรที่ยื่นเข้ามาใหม่ว่ามีความซ้ำซ้อนหรือใกล้เคียงกับผลงานหรือสิ่งประดิษฐ์ที่มีมาก่อนหน้านี้หรือไม่ ซึ่งกระบวนการตรวจสอบนี้อาจต้องใช้เจ้าหน้าที่ที่มีประสบการณ์ในการแยกความแตกต่างของรายละเอียดการประดิษฐ์ รวมถึงอาจต้องใช้เวลาในการอ่านค่อนข้างมาก กระบวนการตรวจสอบคำขอรับสิทธิบัตรแบบเดิม เดิมทีนั้นการตรวจสอบคำขอรับสิทธิบัตรสามารถทำได้โดยผ่านการสืบค้นด้วยคำค้นหาผ่านระบบสืบค้นข้อมูลสิทธิบัตรออนไลน์ (Search Patent System) หรือเว็บไซต์สืบค้นข้อมูลสิทธิบัตรสากลอื่นๆ ซึ่งวิธีการเหล่านี้มีข้อจำกัดในการค้นหา เนื่องจากรายการคำขอรับสิทธิบัตรที่ถูกเลือกมานำเสนอจะเป็นรายการที่จำเป็นต้องมีข้อความที่ตรงกับข้อความค้นหาอยู่ภายในรายละเอียดของคำขอนั้นในลักษณะที่ต้องตรงตามทุกตัวอักษร นอกจากนี้การค้นหาด้วยวิธีนี้จะไม่สามารถค้นหาข้อความหรือคำขอที่มีความใกล้เคียงเชิงบริบทได้ เช่น ในการค้นหาด้วยคำว่า “โควิด” นั้น คำขอรับสิทธิบัตรที่มีคำว่า “ไวรัสโคโรนา” หรือคำอื่นๆที่เกี่ยวข้อง ก็จะไม่ถูกนำเสนอขึ้นมาในผลลัพธ์  เนื่องจากในรายละเอียดไม่มีคำที่ตรงกับคำค้นหา ด้วยเหตุนี้จึงได้มีแนวคิดในการพัฒนาเครื่องมือที่จะมาช่วยคัดกรองคำขอรับสิทธิบัตรที่มีความคล้ายกันเพื่อแก้ไขข้อจำกัดที่กล่าวมาข้างต้น โดยเครื่องมือนี้มีจุดประสงค์เพื่อช่วยสนับสนุนให้ขั้นตอนการพิจารณาคำขอรับสิทธิบัตรสามารถทำได้สะดวก รวดเร็ว และมีประสิทธิภาพมากขึ้น ผลที่ได้จากเครื่องมือนี้จะเป็นรายการคำขอสิทธิบัตรที่มีเนื้อหาคล้ายคลึงกับคำขอสิทธิบัตรที่สนใจมากที่สุดเรียงลำดับจากมากไปน้อยเพื่อนำเสนอประกอบการตัดสินใจของผู้ตรวจสอบ กระบวนการใหม่ที่มีการประยุกต์ใช้เทคนิคการประมวลผลภาษา (Natural Language Processing)           ในปี 2564 ที่ผ่านมา สถาบันส่งเสริมการวิเคราะห์และบริหารข้อมูลขนาดใหญ่ภาครัฐ (GBDi) ได้มีความร่วมมือกับ กองสิทธิบัตร ภายใต้กรมทรัพย์สินทางปัญญา ในการนำข้อมูลคำขอรับสิทธิบัตรที่มีการรวบรวมไว้มาทำการศึกษาและพัฒนาแบบจำลองสำหรับช่วยค้นหาคำขอรับสิทธิบัตรที่ใกล้เคียงกัน โดยการศึกษาในครั้งนี้ได้มีการประยุกต์ใช้เทคนิคการประมวลผลภาษา (Natural Language Processing: NLP) ในการวิเคราะห์ความใกล้เคียง (Similarity Matching) ของเนื้อหาและบริบทของคำที่เกิดขึ้นในรายละเอียดเอกสารคำขอรับสิทธิบัตรกับฐานข้อมูลสิทธิบัตรที่มีอยู่ โดยข้อมูลรายละเอียดที่นำมาใช้ในการพิจารณาประกอบไปด้วย ชื่อการประดิษฐ์ (Title)  บทคัดย่อ (Abstract) และ ข้อถือสิทธิ (Claims) ซึ่งข้อมูลเหล่านี้เป็นข้อมูลประเภทข้อความ (text) ในข้อมูลจะมีข้อความบางส่วนไม่ได้เป็นเนื้อหาหลักของเอกสาร เราจึงต้องมีการทำความสะอาดข้อมูลเหล่านี้ก่อน เช่น การจัดการอักขระพิเศษ การจัดการคำที่ไม่มีนัยสำคัญกับความหมาย (stop words) และอื่นๆ ก่อนนำไปเข้าสู่กระบวนการตัดคำ (word tokenization) หลังจากนั้นจะเป็นขั้นตอนของการสร้างเวกเตอร์ตัวแทนของเอกสาร ด้วยเหตุผลที่ว่าข้อมูลที่ใช้มีรูปแบบเป็นข้อความ (text) ทำให้เราไม่สามารถนำมาเปรียบกันได้โดยตรงว่ามีความคล้ายคลึงกันมากน้อยเท่าใด จึงจำเป็นต้องแปลงข้อมูลเอกสารที่มีรูปแบบเป็นข้อความให้เป็นตัวเลขที่สามารถนำมาเปรียบเทียบได้ก่อน ผลลัพธ์จากขั้นตอนนี้จะได้ออกมาเป็นลำดับของตัวเลขที่แสดงถึงคุณลักษณะของเอกสารนั้นๆ ว่ามีเนื้อหาที่เกี่ยวข้องในเรื่องต่างๆ มากน้อยเพียงใด โดยวิธีการที่ใช้ในการสร้างเวกเตอร์ตัวแทนเอกสารจะประยุกต์ใช้การสร้างเวกเตอร์ด้วยการพิจารณาคุณลักษณะเชิงบริบทของคำ  ซึ่งได้มาจากการเฉลี่ยของเวกเตอร์ตัวแทนของคำทุกคำที่เกิดขึ้นในเอกสารนั้นๆ เทคนิคในการสร้างเวกเตอร์ตัวแทนของคำนี้ จะเรียกว่าการทำ Word Embedding เป็นการแปลงคำที่เป็นตัวอักษรให้กลายเป็นเวกเตอร์ตัวแทนของคำในรูปแบบของค่าตัวเลขที่สามารถนำมาเปรียบเทียบความใกล้เคียงเชิงบริบทได้ ดังเช่นตัวอย่างด้านล่าง จะเห็นว่าคำว่า “apple” และ คำว่า “banana” จะมีค่าตัวเลขในเวกเตอร์ที่ใกล้เคียงกันมากกว่า การเปรียบเทียบ คำว่า “apple” กับ “dog”  เนื่องจาก “apple” กับ “banana” มีความใกล้เคียงเชิงบริบทในแง่ของการเป็นคำที่แสดงถึงผลไม้เหมือนกัน ถ้าอยากทราบรายละเอียดเพิ่มเติมเกี่ยวการทำ Word Embedding สามารถเพิ่มเติมได้ที่บทความ การค้นหาตัวแทนเชิงความหมายของข้อความ: Word2Vec Word Embedding, Part I ลำดับถัดไปคือการคำนวณค่าความเหมือนของเอกสาร โดยการนำเวกเตอร์ตัวแทนเอกสารของคำขอใหม่มาเปรียบเทียบกับเวกเตอร์ตัวแทนเอกสารของคำขอทั้งหมดที่มีในฐานข้อมูล และทำการเรียงลำดับคำขอที่มีความใกล้เคียงกับคำขอใหม่ที่ต้องการตรวจสอบมากที่สุด เพื่อแสดงให้ผู้ตรวจสอบทำการพิจารณาในรายละเอียดอีกครั้ง โดยผลสุดท้ายทาง GBDi ได้ทำการพัฒนาเครื่องมือต้นแบบ (Prototype) ให้กับทางกองสิทธิบัตรได้ทดลองใช้งานเพื่อดูผลลัพธ์การแสดงรายการคำขอที่ใกล้เคียงที่ได้จากการค้นหา โดยเรียงลำดับตามค่าคะแนนความเหมือน เครื่องมือนี้จะมีประโยชน์ต่อเจ้าหน้าที่ตรวจสอบคำขอรับสิทธิบัตรซึ่งช่วยลดภาระงานในการสืบค้นและอ่านคำขอรับสิทธิบัตรจำนวนมาก ทำให้เจ้าหน้าที่สามารถทำงานได้อย่างมีประสิทธิภาพมากยิ่งขึ้น สำหรับความร่วมมือในการพัฒนาเครื่องมือต้นแบบในการค้นหาเอกสารคำขอรับสิทธิบัตรที่ใกล้เคียงกันของทางกองสิทธิบัตร กรมทรัพย์สินทางปัญญา และ GBDi ในครั้งนี้ นับว่าเป็นตัวอย่างที่แสดงให้เห็นถึงการนำข้อมูลที่มีอยู่มาใช้ประโยชน์เพื่อพัฒนาประสิทธิภาพการดำเนินงานของหน่วยงานให้สามารถทำงานได้อย่างสะดวก รวดเร็ว และตอบโจทย์การให้บริการประชาชนมากยิ่งขึ้น และหวังว่าตัวอย่างนี้จะเป็นประโยชน์แนวทางให้กับหน่วยงานอื่นๆ ในการส่งเสริมการใช้ประโยชน์ข้อมูลที่มีอยู่ภายในหน่วยงานต่อไปในอนาคต เนื้อหาโดย กัญญาวีร์ พรสว่างดีตรวจทานและปรับปรุงโดย นววิทย์ พงศ์อนันต์
28 March 2022
Association Rule: การหา Frequent Itemsets ด้วย Apriori Algorithm
จากบทความที่ผ่านมาได้มีการกล่าวถึง การวิเคราะห์ตะกร้าสินค้า (Market Basket Analysis) ด้วยการสร้างกฎความสัมพันธ์ หรือ Association Rule ไปแล้ว พร้อมกับอธิบายถึงแนวคิดพื้นฐานที่ถูกใช้ใน Association Rule ได้แก่ Support, Confidence และ Lift หากใครยังไม่รู้จักคำเหล่านี้ว่าหมายถึงอะไร สามารถเข้าไปอ่านในบทความ มาทำความรู้จัก Association Rule: เครื่องมือเพื่อการวิเคราะห์ตะกร้าตลาด กัน! ได้เลย ในส่วนของบทความนี้จะเป็นภาคต่อที่จะพูดถึงหนึ่งในขั้นตอนวิธีในการสร้างกฎความสัมพันธ์ โดยวิธีการที่เป็นที่นิยม เป็นเทคนิคที่ชื่อว่า Apriori Algorithm นั่นเอง เริ่มต้นขอเกริ่นก่อนว่ากระบวนการในการหากฎความสัมพันธ์ (Association Rule Mining) นั้นสามารถแบ่งปัญหาออกเป็น 2 งานย่อยด้วยกัน ได้แก่ 1. Frequent Itemset Generationคือการหา itemsets ที่ผ่านเกณฑ์ minimum support ซึ่งจะเรียก itemsets เหล่านี้ว่าเป็น “Frequent Itemsets” 2. Rule Generationคือการหากฎความสัมพันธ์ที่มีค่า Confidence หรือ Lift สูง หรือที่เรียกว่า “Strong Rules” ซึ่งกฎเหล่านี้จะถูกสร้างมาจาก Frequent Itemsets ที่ได้มาจากขั้นตอนก่อนหน้า ในสองกระบวนการนี้ Apriori Algorithm จะเข้ามาเป็นส่วนหนึ่งในการช่วยเพิ่มประสิทธิภาพและความเร็วของการสร้างกฎความสัมพันธ์ ที่มีจำนวน items และ transactions จำนวนมาก สำหรับในบทความนี้จะขอโฟกัสไปที่การประยุกต์ใช้ Apriori Algorithm ในขั้นตอนการหา Frequent Itemsets กันก่อน จากบทความก่อนหน้าเราพอทราบมาแล้วว่า หากมีสินค้าอยู่ N ชิ้น จะมี itemsets ที่เป็นไปได้ถึง 2N – 1 แบบ ซึ่งจะเห็นว่าจำนวน itemsets มีการเพิ่มแบบ exponential ตามจำนวน items ที่เพิ่มขึ้น สมมติ ถ้าร้านเรามีสินค้าทั้งหมด 4 items ได้แก่ apple, banana, water และ bread จะสามารถสร้าง itemsets ที่เป็นไปได้ทั้งหมด 24-1 = 15 itemsets ที่ประกอบไปด้วย itemsets ที่มีสินค้าแค่ 1 ชิ้น จนถึง itemsets ที่มีสินค้าครบ 4 ชิ้น ดังรูปด้านล่าง ถ้าใช้วิธีการแบบ Brute Force สำหรับการหา Frequent Itemsets ซึ่งจะหมายถึงการไล่คำนวณค่า Support ของทุก Itemsets ที่เป็นไปได้ทั้งหมด หรือทุก Candidate Itemsets สำหรับการใช้งานจริงในร้านค้าซึ่งมีสินค้าและ Transactions จำนวนมากนั้นอาจจะไม่เป็นการดี เนื่องจากใช้เวลาและทรัพยากรในการประมวลผลค่อนข้างสูง (Computational Expensive and Time Consuming) ดังนั้น Apriori Algorithm จึงถูกพัฒนาขึ้นมาเพื่อแก้ปัญหานี้ เพื่อลดจำนวน itemsets ที่จำนำมาพิจารณาให้เหลือน้อยลง โดยใช้หลักการที่ว่า “ถ้า itemset ใดเกิดไม่บ่อย superset ทั้งหมดของ itemset นั้น ก็จะเกิดไม่บ่อยด้วยเช่นกัน” เพื่อให้เห็นภาพมากขึ้นขอยกตัวอย่าง โดยหากลองพิจารณารายการซื้อขายที่เกิดขึ้นในอดีต เราพบ {apple} ใน 5 ตะกร้า  สินค้าอื่นที่จะถูกซื้อร่วมกับ apple จะต้องปรากฎใน 5 ตะกร้านี้ด้วยเช่นกัน เป็นไปไม่ได้เลยว่า เราจะพบ {apple, bread} คู่กันเกิน 5 ตะกร้า ดังนั้นถ้าพบว่า {apple} ไม่ใช่ frequent itemsets แล้ว {apple, สินค้าใดๆ} ก็จะไม่ใช่ frequent itemsets ด้วยเช่นกัน หมายความว่า เราสามารถตัด supersets ของ itemsets ที่ไม่ใช่ Frequent Itemset ออกจากการพิจารณาได้เลย ซึ่งในทางปฏิบัติ ทำให้เราลดจำนวน itemsets ที่ต้องพิจารณา จาก 2N – 1 รูปแบบ ลงได้จำนวนมาก มีผลให้การคำนวณทำได้เร็วขึ้นนั่นเอง จากภาพด้านบนเป็นตัวอย่างของการลดจำนวน itemsets ที่นำมาพิจารณาด้วยหลักการที่กล่าวไปข้างต้น  โดยแสดงให้เห็นว่า หาก {apple} ถูกพิจารณาแล้วว่ามีค่า support ต่ำกว่าเกณฑ์ที่ตั้งไว้ ซึ่งจะถือว่า {apple} นั้นเป็น Infrequent Itemset ดังนั้นจะเห็นว่า itemsets ทั้งหมด ที่สร้างมาจาก {apple} จะไม่ถูกนำมาพิจารณาในการสร้าง Association Rule ต่อไปเพราะ Support ของ itemsets เหล่านี้ที่มี apple เป็นส่วนประกอบ จะน้อยกว่าหรือเท่ากับ support ของ {apple} ซึ่งจะมีค่า Support ที่ต่ำกว่าเกณฑ์ ซึ่งสามารถสรุปได้ว่า itemsets เหล่านี้จะถือว่าเป็น Infrequent Itemsets ด้วยทั้งสิ้น โดยจะเรียกวิธีการนี้ว่า “Support-Based Pruning” จะเห็นว่าวิธีการนี้จะช่วยลด itemsets ที่จะนำมาพิจารณาลงได้อย่างมากเลยทีเดียว ขั้นตอนของ Apriori Algorithm เพื่อหา Frequent Itemsets Step 0: เริ่มต้นจากการสร้าง itemsets ที่มีจำนวนสมาชิก 1 item ที่เป็นไปได้จาก items ทั้งหมด เช่น {apple} และ {egg} เป็นต้น ขั้นตอนนี้คือการสร้าง Candidate 1-itemsets (C1) ขึ้นมา Step 1: ทำการคัดเลือก Frequent Itemsets โดยพิจารณาค่า Support...
21 June 2021
Survival Analysis กับความท้าทายในการจัดการ Censored Data Part 2
บทความที่แล้ว เราได้พาท่านผู้อ่านไปรู้จักกับ Survival Analysis ในเบื้องต้นว่าคืออะไร พร้อมกับกรณีตัวอย่างการประยุกต์ใช้ นอกจากนี้ผู้อ่านก็ได้ทำความรู้จักกับ Censored Data ประเภทต่าง ๆ กันมาแล้ว ถ้าใครยังไม่รู้จัก Survival Analysis กับ Censored Data แนะนำให้เข้าไปอ่านบทความแรกก่อนใน Survival Analysis กับความท้าทายในการจัดการ Censored Data Part 1 ส่วนในบทความนี้จะมาเล่าต่อถึง รายละเอียดของวิธีการในการวิเคราะห์ Survival Analysis กัน รวมถึง Term ต่าง ๆ ที่ควรรู้จัก และประเภทของวิธีการทาง Survival Analysis Survival Analysis นั้นถูกพัฒนาขึ้นมาเพื่อจัดการปัญหา ของการเกิด Censored Data และถึงแม้ว่าข้อมูลของเราสามารถสังเกตหรือเก็บผลของการเกิดเหตุการณ์ได้ทุกตัวอย่าง คือทราบว่าเกิดเหตุการณ์ในช่วงเวลาเท่าไหร่ในทุกตัวอย่าง หรือ ไม่มีการเซ็นเซอร์เกิดขึ้นเลย วิธีการทาง Survival Analysis นี้ก็ยังเป็นเครื่องมือที่มีประโยชน์สำหรับการทำความเข้าใจ ระยะเวลาและอัตราของการเกิดเหตุการณ์ที่เราสนใจได้เช่นเดียวกัน ในตัวอย่างจากบทความที่แล้ว จะเห็นว่าเราให้ทุกตัวอย่างมีจุดเริ่มต้นการเกิด ณ จุดเดียวกัน แต่ในความเป็นจริงจุดเริ่มต้นของแต่ละตัวอย่างอาจไม่จำเป็นต้องเริ่มต้นที่จุดเดียวกันก็ได้ ตัวอย่างเช่น สมมุติเราสนใจเกี่ยวกับช่วงเวลาการเป็นสมาชิกของลูกค้า จุดเริ่มต้นการเกิดของตัวอย่างนี้ ก็อาจจะเป็นวันที่ลูกค้ายืนยันการลงทะเบียนเข้าเป็นสมาชิก ซึ่งลูกค้าแต่ละคนสามารถเข้ามาสมัครเป็นสมาชิกในเวลาใดก็ได้ ดังนั้น ในการวิเคราะห์การรอดชีพ หรือ Survival Analysis จริง ๆ จะสนใจแค่ ช่วงเวลา (duration) ของการเกิดเหตุการณ์เท่านั้น ไม่จำเป็นต้องรู้เวลาจริงของจุดเริ่มต้นและจุดจบ ก่อนอื่นขอพาท่านผู้อ่านไปรู้จักกับคำนิยามพื้นฐานและแนวคิดที่เกี่ยวข้องกับ Survival Analysis ได้แก่ Survival Function และ Hazard Function จากนั้นจะตามด้วยตัวอย่าง การประมาณค่าด้วยวิธีการ Kaplan-Meier Survival Function [latexpage] สมมุติให้ $T$ เป็นเวลาการรอดชีวิต หรือระยะปลอดเหตุการณ์ ของประชากรที่เราทำการศึกษา ซึ่งสามารถเป็นค่าเวลาไม่จำกัด (Infinite Time) ได้ หากไม่มีเหตุการณ์นั้นเกิดระหว่างช่วงเวลาการศึกษา Survival Function, $S(t)$, ของประชากรกลุ่มนี้จะถูกกำหนดด้วยสมการ $S(t)$=ความน่าจะเป็นที่ยังไม่ตายที่เวลา ณ เวลา $t= P(T>t)$ โดยเป็นฟังก์ชันที่บอกถึงความน่าจะเป็นที่ตัวอย่างหนึ่งยังคงปลอดเหตุการณ์ ณ เวลา $t$ หรือความน่าจะเป็นที่จะเกิดเหตุการณ์หลังจากเวลา $t$ ผ่านไปแล้ว หรือเรียกว่าเป็นค่า Survival Probability ที่มีการเปลี่ยนแปลงไปตามเวลา โดย Survival Function จะมีลักษณะดังรูปตัวอย่างด้านล่าง ยกตัวอย่างการตีความจากกราฟนี้ จะเห็นว่าที่ $S(40)$ มีค่าเท่ากับ 0.75 หมายถึงหลังจากผ่านไป 40 วัน นับตั้งแต่วันเริ่มต้นของการเกิดตัวอย่าง ความน่าจะเป็นที่ตัวอย่างจะอยู่รอด มีค่าเป็น 0.75 หรืออธิบายง่าย ๆ ได้ว่า 75% ของประชากรทั้งหมดจะอยู่รอด ณ วันที่ 40 ถ้าหากว่าตัวอย่างใดยังมีชีวิตจนจบช่วงเวลาการทดลอง ข้อมูลเหล่านั้นก็จะถูก Censored หรือก็คือไม่ทราบช่วงเวลาจริงของการตายของตัวอย่างนั้น ๆ นั่นเอง โดย Survival Function จะมีคุณสมบัติหลัก ๆ ดังนี้ ณ จุดเริ่มต้นของการศึกษา $(t=0)$ ไม่มีตัวอย่างใดในกลุ่มประชากรที่ผ่านการประสบเหตุการณ์มาก่อน ดังนั้น ความน่าจะเป็นของการรอดชีวิตผ่านเวลา $t=0$ หรือ $S(0)$ จะมีค่าเป็น 1 หมายถึงประชากร 100% มีชีวิตอยู่รอดโดยปลอดเหตการณ์ เมื่อผ่านเวลา $t=0$ และหากว่าระยะเวลาของการศึกษาไม่มีจำกัด ก็คือทำการสังเกตไปได้เรื่อย ๆ จนกว่าตัวอย่างทั้งหมดจะเกิดเหตุการณ์ขึ้น โดยเราจะเชื่อว่าสักวันทุกตัวอย่างต้องประสบกับเหตุการณ์ จึงทำให้ความน่าจะเป็นจะค่อย ๆ ลดลงจนเหลือศูนย์ในที่สุด ในทางทฤษฎีนั้น Survival Functionจะเป็นกราฟที่มีลักษณะเป็นเส้นโค้งราบเรียบ แต่ในทางปฏิบัติแล้วการสังเกตผลลัพธ์ของการเกิดเหตุการณ์มักจะทำการสังเกตเป็นเวลาที่ไม่ต่อเนื่อง ส่วนมากจะอยู่ในหน่วย เช่น วัน หรือ เดือน ด้วยเหตุนี้เองกราฟของ Survival Function ในทางปฏิบัติจึงมีหน้าตาเป็น Step คล้ายขั้นบันได Survival Function นี้สามารถนำมาใช้ในการประมาณการค่าเวลา $T$ ของการรอดชีวิตได้ ตามเกณฑ์ความน่าจะเป็นที่เรากำหนด ยกตัวอย่างเช่น เรื่องการย้ายค้ายมือถือ บริษัทผู้ให้บริการเครือข่าย สามารถนำข้อมูลประวัติการย้ายค่ายของลูกค้าในอดีตมาสร้างเป็น Survival Function เพื่อใช้ในการประมาณระยะเวลาที่ลูกค้าจะย้ายค่าย สมมุติหากเราได้ Survival Function เป็นดังภาพตัวอย่างด้านล่าง แสดงให้เห็นว่าโอกาสที่ลูกค้าจะยังไม่ย้ายค่ายเกิน 50 % จะอยู่ในช่วง 8 ปีแรก ดังนั้น ถ้ากำหนดเกณฑ์ที่ความน่าจะเป็นเท่ากับ 50% จะให้มีการเสนอโปรโมชั่นให้แก่ลูกค้า เพื่อลดโอกาสที่ลูกค้าจะย้ายค่าย ถ้าปัจจุบันมีลูกค้าคนใดที่ใช้บริการกับบริษัทมาถึงปีที่ 8 ก็อาจจะมีการเริ่มให้พนักงานขายโทรไปหาลูกค้าเพื่อทำการเสนอโปรโมชั่นพิเศษ เป็นต้น Hazard Function จากนิยามของ Survival Function เราสนใจที่ความน่าจะเป็นของการรอดชีวิต หรือตัวอย่างที่ยังไม่เกิดเหตุการณ์ ณ เวลา $t$ ในทางกลับกันบางครั้งเราอยากสนใจอีกด้านคือ ความน่าจะเป็นของการเกิดเหตุการณ์ หรือการตายแทน เราจะใช้ฟังก์ชันที่ชื่อว่า Hazard Function, $h(t)$, โดย Hazard Function เป็นความเสี่ยงของการเกิดเหตุการณ์ใด ๆ ณ เวลาที่ $t$ โดยกำหนดให้ว่าไม่มีเหตุการณ์เกิดขึ้นมาก่อนเวลา $t$ นี้ หรืออธิบายง่าย ๆ ได้ว่า เป็นความน่าจะเป็นที่ถ้าคุณรอดชีวิต ณ เวลา $t$ แล้วคุณจะตายในจุดเวลาถัดไป โดยสามารถแทนด้วยสมการคณิตศาสตร์ได้ ดังนี้ $h(t) =$ ความน่าจะเป็นที่จะตาย ณ เวลา $t$$$= lim_{ Delta t to 0} frac{P(t leq T < t +  Delta t|T geq t )}{Delta t}$$ ยกตัวอย่างเช่น $h(200) = 0.7$ หมายถึงหลังจากผ่านไป 200 วัน หรือ ณ วันที่ 200 ความน่าจะเป็นของการตาย คือ 0.7 หรือ 70% โดยปกติแล้ว Hazard Rate...
3 February 2021
Survival Analysis กับความท้าทายในการจัดการ Censored Data
Survival Analysis (การวิเคราะห์การรอดชีพ) หรือเรียกอีกอย่างว่า การวิเคราะห์ระยะปลอดเหตุการณ์ เป็นสาขาย่อยหนึ่งในสถิติ มีเป้าหมายเพื่อวิเคราะห์และสร้างแบบจำลองที่ทำนายเวลาที่ใช้ในการเกิดเหตุการณ์บางอย่างที่เราสนใจ (Time to Event หรือ Survival Time)
24 September 2020
PDPA Icon

We use cookies to optimize your browsing experience and improve our website’s performance. Learn more at our Privacy Policy and adjust your cookie settings at Settings

Privacy Preferences

You can choose your cookie settings by turning on/off each type of cookie as needed, except for necessary cookies.

Accept all
Manage Consent Preferences
  • Strictly Necessary Cookies
    Always Active

    This type of cookie is essential for providing services on the website of the Personal Data Protection Committee Office, allowing you to access various parts of the site. It also helps remember information you have previously provided through the website. Disabling this type of cookie will result in your inability to use key services of the Personal Data Protection Committee Office that require cookies to function.
    Cookies Details

  • Performance Cookies

    This type of cookie helps the Big Data Institute (Public Organization) understand user interactions with its website services, including which pages or areas of the site are most popular, as well as analyze other related data. The Big Data Institute (Public Organization) also uses this information to improve website performance and gain a better understanding of user behavior. Although the data collected by these cookies is non-identifiable and used solely for statistical analysis, disabling them will prevent the Big Data Institute (Public Organization) from knowing the number of website visitors and from evaluating the quality of its services.

  • Functional Cookies

    This type of cookie enables the Big Data Institute (Public Organization)’s website to remember the choices you have made and deliver enhanced features and content tailored to your usage. For example, it can remember your username or changes you have made to font sizes or other customizable settings on the page. Disabling these cookies may result in the website not functioning properly.

  • Targeting Cookies

    "This type of cookie helps the Big Data Institute (Public Organization) understand user interactions with its website services, including which pages or areas of the site are most popular, as well as analyze other related data. The Big Data Institute (Public Organization) also uses this information to improve website performance and gain a better understanding of user behavior. Although the data collected by these cookies is non-identifiable and used solely for statistical analysis, disabling them will prevent the Big Data Institute (Public Organization) from knowing the number of website visitors and from evaluating the quality of its services.

Save settings
This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.