- ข้อความจากข่าว
"พบผู้ป่วยไข้หวัดนกที่จังหวัดนนทบุรีเมื่อปีกลาย"
- วิเคราะห์เพื่อหานิพจน์ที่สนใจ (ในตัวอย่างนี้ สีแดงคือ ชื่อโรค สีน้ำเงินคือสถานที่ และสีเขียวคือเวลา)
"พบ ผู้ป่วย ไข้หวัดนก ที่ จังหวัด นนทบุรี เมื่อ ปี กลาย"
- หาความสัมพันธ์ระหว่างนิพจน์
- ใช้เทคนิค data mining กับข้อมูลในข้อ 3
บันทึกนี้จะเน้นขั้นตอน "วิเคราะห์เพื่อหานิพจน์ที่สนใจ" เพื่อที่วิเคราะห์เพื่อหานิพจน์ที่สนใจได้ ก็ต้องมีโปรแกรมวิเคราะห์หานิพจน์ที่สนใจ ที่รับข้อความจากเว็บหรือข่าวเข้ามา แล้วก็บอกว่าข้อความส่วนไหนเป็น นิพจน์ที่สนใจ และโปรแกรมต้องสามารถบอกได้ด้วยว่านิพจน์ที่สนใจเป็นชนิดไหน. ในตัวอย่างนี้แสดงชนิดด้วยสี โดย สีแดงคือ ชื่อโรค สีน้ำเงินคือสถานที่ และสีเขียวคือเวลา.
แต่ว่า โปรแกรมวิเคราะห์หานิพจน์ที่สนใจ ได้มาจากไหน? เราอาจจะเขียนโปรแกรมเอาก็ได้เช่น if word == "ปทุมธานี" then return "location" ก็อาจจะเป็นไปได้เหมือนกัน หรือว่าอาจจะแยกชื่อจังหวัดไว้ในไฟล์ก็เป็นไปได้อีกเหมือนกัน. แต่ว่าก็อาจจะไม่พอ เทคนิคหนึ่งที่ชาวบ้านนิยมนำมาใช้กันคือ การใช้เครื่องจักรเรียนรู้ (Machine learning). ซึ่งในกรณีนี้มักจะป้อนข้อความตัวอย่างที่บอกว่าส่วนไหนของความเป็นนิพจน์ที่เราสนใจ เข้าไปให้ เครื่องจักรเรียนรู้ หารูปแบบ (pattern) ของนิพจน์ฯ เอง. ขั้นตอนนี้เราเรียกว่าการฝึกสอน ผมคิดว่าการฝึกฝนแบบนี้เป็นการฝึกฝนโดยการทำให้ดูเป็นตัวอย่าง ตัวอย่างที่ใช้ฝึกฝนเครื่องจักรเรียนรู้ก็หน้าตาเหมือน output นั่นเอง เช่น น้ำท่วมชุมพรเมื่อหลายปีก่อน ฯลฯ. แต่การฝึกฝน ก็ไม่ใช่ว่าทำกันแค่ ประโยค 2 ประโยค แต่อาจจะเป็น พัน เป็น หมื่น ประโยค. ปัญหาที่ตามมาคือฝึกไม่เสร็จซักที (ทำงานนานว่าง่ายๆ). ยิ่งเวลาเราทำงานวิจัย เราก็มักจะไม่ได้ฝึกฝนแค่ครั้งเดียว. ส่วนมากแล้วมักจะทำหลายครั้งเพื่อหาวิธีที่ดีสุด เช่น อาจจะลองใช้เครื่องจักรเรียนรู้หลายๆ แบบ เป็นต้น. (ถ้าใครสนใจงานประเภทนี้ ก็ลองดูที่ http://naist.cpe.ku.ac.th/ ได้ โฆษณาเห็นๆ)
ไม่รู้จะทำอย่างไร เราก็หันหน้าไปพึ่ง computer cluster ดีกว่า. ระหว่างที่เขียนอยู่นี่ต่อ net ไม่ได้ เลยไม่ได้ดูว่านิยามของ computer cluster คืออะไร. แต่จากความรู้สึก(ซึ่งก็ไม่น่าจะถูกเท่าไหร่) computer cluster ก็คือการเอา computer หลายๆ เครื่องมาต่อกันผ่าน network ส่วนมากมักจะตั้งอยู่ในตู้เดียวกัน เพื่อช่วยกันประมวลผลงานใหญ่ๆ ให้เสร็จเร็วๆ.
สมมุติว่าผมมีงาน(การทดลอง) 10 ชุด อาจจะเครื่องแรงๆ มี 2-3 เครื่องแล้วเอางานไป run บนเครื่องแรงๆ 2-3 เครื่องนั้นก็ได้. แต่มันก็จะมีปัญหาก็คือผมต้องมานั่งดูว่า แต่ละงานเครื่องไหนเสร็จก่อน ก็ต้องคอยป้อนงานใหม่เข้าไป. แน่นอนสำหรับ cluster ปัญหานี้ก็ไม่มีเพราะมีโปรแกรมคอยจัดคิวให้. สบายไป :-D
พอเริ่มใช้ cluster ได้ ก็เริ่มอยากจะลองขั้นถัดไปคือไปใช้ grid computing ซึ่งอาจจะมีคนนิยาม grid computing ไว้ดีๆ เท่ๆ เท่าที่ผมเห็น รู้สึก (แต่อาจจะเข้าใจผิด) grid computing ก็คือ cluster หลายๆ ชุดต่อเข้าด้วย ซึ่งอาจจะอยู่คนละคณะ คนละมหาลัยฯ กันก็ได้. แน่นอนจำนวนเครื่องเพิ่มขึ้นมาก. ล่าสุดผมก็ยังอยู่ในช่วงฝึกใช้. :-P
ขอบคุณ Thai Grid ที่ทำให้เราทำการทดลองที่ไม่น่าเสร็จให้เสร็จได้ :-)


เมนูของ vsatayamas




