ในยุคที่ข้อมูลมีบทบาทสำคัญในการตัดสินใจ การใช้ประโยชน์จากเทคโนโลยี Machine Learning ได้กลายเป็นสิ่งสำคัญอย่างยิ่ง ซึ่งหนึ่งในเครื่องมือที่ทำให้การสร้างโมเดล Machine Learning ง่ายขึ้นก็คือ Keras ซึ่งเป็น API ระดับสูงที่ใช้งานง่ายบน TensorFlow โดยในบทความนี้เราจะมาพูดคุยเกี่ยวกับการสร้างโมเดลที่มีความซับซ้อนมากขึ้น นั่นก็คือโมเดลที่มีหลายอินพุตและหลายเอาต์พุต
ในบางสถานการณ์ เช่น การวิเคราะห์ข้อมูลผู้ใช้ที่มีข้อมูลหลากหลายประเภท อาทิ ข้อมูลพฤติกรรม ข้อมูลประชากรศาสตร์ และข้อมูลประวัติการใช้งาน การสร้างโมเดลที่สามารถประมวลผลข้อมูลหลายรูปแบบในครั้งเดียวจะทำให้เราสามารถดึงข้อมูลที่มีค่ามากกว่าออกมา นอกจากนี้ การใช้งานโมเดลที่มีเอาต์พุตหลายตัวจะทำให้เราสามารถสร้างผลลัพธ์หลากหลายที่ใช้ในการตัดสินใจได้ในเวลาเดียวกัน ซึ่งทั้งหมดนี้คือข้อดีที่อาจนำไปสู่การตัดสินใจที่มีประสิทธิภาพมากยิ่งขึ้น
เรามาลองสร้างโมเดลตัวอย่างด้วย Keras ที่สามารถรองรับหลายอินพุตและเอาต์พุตกัน
ใช้ Keras สร้างโมเดล
from keras.layers import Input, Dense, concatenate
from keras.models import Model
# กำหนดอินพุตแรก
input1 = Input(shape=(64,))
x1 = Dense(8, activation='relu')(input1)
# กำหนดอินพุตที่สอง
input2 = Input(shape=(32,))
x2 = Dense(8, activation='relu')(input2)
# รวมอินพุตสองตัวเป็นอันหนึ่ง
combined = concatenate([x1, x2])
# เพิ่มเลเยอร์ที่อยู่หลังจากการรวม
z = Dense(4, activation='relu')(combined)
# กำหนดเอาต์พุตสองตัว
output1 = Dense(1, activation='sigmoid', name='output1')(z)
output2 = Dense(1, activation='sigmoid', name='output2')(z)
# สร้างโมเดล
model = Model(inputs=[input1, input2], outputs=[output1, output2])
# สรุปโมเดล
model.summary()
การการสร้างโมเดล
ในโค้ดตัวอย่างข้างต้น เราสร้างสองอินพุตซึ่งรับข้อมูลคนละขนาดกัน คือ `(64,)` และ `(32,)` จากนั้นใช้ Dense layer ในการลดมิติข้อมูล และทำการรวมกันด้วยฟังก์ชัน `concatenate` หลังจากการรวมข้อมูล เราใช้ Dense อีกครั้งในการสร้างเลเยอร์ซ่อน และในที่สุดแสดงเอาต์พุตสองตัว
กรณีศึกษาตัวอย่าง
สมมุติว่าเราต้องการพัฒนาโมเดลสำหรับแอปพลิเคชันที่ให้คะแนนเว็บไซต์จากข้อมูลทั้งตัวอักษรและภาพ อินพุตที่ 1 อาจเป็นข้อมูลข้อความซึ่งต้องการฟีเจอร์ 64 ตัว เพื่อสรุปใจความสำคัญ ในขณะที่ อินพุตที่ 2 อาจเป็นฟีเจอร์ของรูปภาพซึ่งรวบรวมจาก CNN ด้วยจำนวน 32 ตัว จากนั้นจึงทำการรวมและใช้โมเดลที่เราพัฒนาขึ้นในการประเมินเว็บไซต์ได้
การสร้างโมเดลที่มีหลายอินพุตและหลายเอาต์พุตใน Keras นั้นสามารถใช้งานได้ง่ายและมีประสิทธิภาพ ช่วยให้เราสามารถพัฒนาโมเดลที่ซับซ้อนมากขึ้นได้ในเวลาอันสั้น สำหรับผู้ที่สนใจพัฒนาโมเดลที่สามารถประมวลผลข้อมูลหลายรูปแบบเพื่อใช้ในการตัดสินใจอย่างมีประสิทธิภาพ โปรดพิจารณาศึกษาเพิ่มเติม หรือลงเรียนคอร์สเพื่อเพิ่มความรู้เกี่ยวกับการโปรแกรมมิ่งที่ EPT เชื่อมต่อกับโลกของ Machine Learning วันนี้เพื่อเปิดโอกาสใหม่ๆในโลกยุคดิจิทัล!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM