Multiple Instance Learning (MIL) และ Weakly Supervised Learning (WSL)

Peratham Wiriyathammabhum
3 min readOct 22, 2023

--

level: ทำจบปอโทได้มั้ง ไม่ก็เปเปอร์ระดับปอเอกซักอัน ถ้างานถึง ซักพักคงเห็นเด็กปอตรีมอปลายมอต้นทำโปรเจ็คกันเกร่อ เอาน่า โลกก็เป็นแบบนี้

Multiple Instance Learning [1] เป็น learning framework คือเราสามารถ formulate ปัญหา supervised learning มีชุดข้อมูลกับฉลาก label {x_i, y_i} ออกมาเป็นถุงๆได้ (multiple instances/sets/groups/bags whatsoever บางที่เรียก collective classification แต่อาจจะเป็น setting ที่ต่างกันนิดหน่อย แต่ก็งานทำนองนี้) ตัว data loader จะ load [bag_i] ที่มีจำนวน instances ต่างๆกันหรือเท่ากันก็ได้ มาให้โมเดลใน learning phase เรียกว่า multi-instance binary classification คือ label จะไม่ใช่ y_i แต่จะเป็นถุงๆด้วย bag_i มี label y_b_i แทน จะไม่ใช่ label ระดับ instance หนึ่งๆแต่เป็นถุงๆ ในถุงอาจมี instance ที่ไม่มี label ก็ได้เป็นปกติ จัดว่าเป็นการลด labeling cost แบบนึงครับ เพราะเป็น setting ที่มี incomplete input มักจะให้ถุงเป็น + ถ้ามี positive instance อยู่อย่างน้อยตัวนึง และ - ถ้าไม่มีเลย

ตัวอย่างเช่น ถุงขลุ่ย Flute Quiver https://highspirits.com/products/flute-collection-bag เอาปากกาหรือกล้องส่องทางไกลเสียบซักช่องก็ยังเป็นถุงขลุ่ย เอาปี่ไทยขลุ่ยไทยหรือขลุ่ยสากลฟลุ๊ตขลุ่ยฝรั่งขลุ่ยอินเดียขลุ่ยแอฟริกา ก็ยังคงเป็นถุงขลุ่ย เป่าแล้วมีงูออกมาหรือพญานาคอ่ะ? พญานาคอยู่ข้างกล่องไม้ขีด

ในวิกิ ก็เขียนว่ามีมาอย่างน้อยตั้งแต่ยุค นายตี้ 90s มีเปเปอร์ NeurIPS’90 โดย Keeler, Rumelhart และ Leow [2] ที่รวม segmentation และ recognition สำหรับงาน optical character recognition (OCR) ชิ้นงานจาก Microelectronics and Computer Technology Corporation (MCC) กับภาคจิตวิทยา มหาลัย Stanford ปี 1991 มี white paper รายงานบริษัทอีกฉบับ ซึ่งบริษัทน่าจะ discontinued ไปแล้ว ตอนปี 2004 [3] วินเทจพอสมควร คนส่วนมากวัยยังเติร์กอายุ 40 ลงไปยุคนี้น่าจะโตไม่ทัน ประโยคนึงที่ตกทอดมาถึงทุกวันนี้ในวงการน่าจะมีคนคุ้นๆกัน “…The problem in these situations is that often one cannot properly segment a character until it is recognized yet one cannot properly recognize a character until it is segmented.” ใน abstract เลย

ทั้งนี้คำว่า multiple-instance learning นิยามครั้งแรกในวิกิเขียนว่า [2] โดย Thomas Dietterich (Tom Dietterich Co-founder และ chief-scientist BigML อาจารย์เกษียณจาก Oregon State University เป็นคนที่น่าจะคุ้นเคยในวงการ Machine Learning หรือ Data Mining บน Twitter กันดี วารสาร Machine Learning หรือ Journal of Machine Learning Research ทำนองนี้) Richard H. Lathrop และ Tomás Lozano-Pérez ในวารสารปี 1997 นี่แปลอ้างมาดื้อๆจากวิกิเลย ในงาน drug activity prediction ให้ low-energy shapes ของ the qualified molecule เป็น positive training instances และ otherwise ดังนั้น molecule combinations จะเป็น bags จากรูปร่างโมเลกุล โป๊ะเชะ เป็น MIL โดย setting นี้ถ้านำมาใช้ใน image classification ในวิกิเขียนอ้างจากวารสารรีวิวปี 2013 [5] อีกว่าก็ถ้าแบ่งภาพเป็น patches หรือ regions เล็กๆ ภาพชายหาดคลาส beach ควรมี sand และ water เป็น คลาสหรือคอนเซปต์ใน bag นั้นๆ เป็นอาทิ เทคนิคที่ representative อันนึงเช่น multiple-instance SVM หรือ MI-SVM (bag-level: max pool input features in a bag สอดคล้องกับนิยามว่า positive bag คือมีอย่างน้อย 1 positive instances) ไม่ก็ mi-SVM (instance-level: self-training latent instance labels ด้วยวิธีกึ่งๆ EM ในคหสต ในกรณีที่ output 0 ใน positive bag นอกนั้นก็คือ SVM ปกติรันทีละ instance แต่ไม่มี instance labels วิธีเลยคล้ายๆ self-training ในลูป บางคนพูดว่าเป็น avg pool ไม่รู้สินะ) ที่ใช้ selector function (pooling ชัดๆ) เวลาคำนวณ output จากแต่ละ bag ทั้งนี้ optimization scheme non-convex เป็น mixed integer programming รันช้าและปัญหามาก วิธีที่ดีๆดูชิ้นงานต่อจาก mi-SVM/MI-SVM ที่ใช้ sparsity เป็นอาทิ

Fig.5 from [5] MIL หรือ MIC problem
https://proceedings.neurips.cc/paper_files/paper/2002/file/3e6260b81898beacda3d16db379ed329-Paper.pdf
ตัวอย่างการ gen patches โดยมากก็ใช้สำหรับ MIL/MIC เพื่อสร้าง foreground/background or semantic segmentation 2D/3D/nD model ในงาน Pathology ด้วย microscopy image browser (MIB)
ตัวอย่างการใช้ Convolutional Neural Networks ในงาน patch-based classification CVPR’16 ด้วย EM algorithm [8] ตัวอัลกอริธึมคล้ายงานพวก self-training/semi supervised learning ยุคก่อนแบบใช้ EM ส่วนแบบ deep learning attention on patches MIL training มี ICML’18 paper จาก AMLab Amsterdam [10] มีโค้ดให้ด้วย แล้วก็มี keras tutorial ด้วย [9] เอามารันได้เลย บน MNIST data ใช้จับโจรเวลาเรามี incomplete data ได้มั้ยน้ะ สมมติ crime activity บน gis city data ไรงี้

ทีนี้ MIL framework/setting เดี๋ยวนี้เค้าจัดว่าอยู่ใน weakly-supervised learning ด้วย หรืออาจเรียกว่า weak supervision, distant supervision หรือบางคนบอกว่ามันคือชื่อใหม่ของ semi-supervised learning อ่ะแหละ ถ้าคุ้นกับอัลกอริธึม label propagation, self-training หรือ co-training (เดี๋ยวนี้ self-training/co-training มีชื่อใหม่อีกเรียกว่า teacher-student/distillation ในบางแห่ง) ในยุคนั้น (เอาโมดูลจาก sklearn มารันเล่นๆได้เลย [7]) รวมถึง active learning ด้วย (อันนี้รู้สึกว่าจะไม่มีใน sklearn ฟู้ว ไว้มีโอกาสจะเขียนบล๊อกหัวข้อนี้อีกที) นิยามเดิมๆ ว่าชุดข้อมูลมีข้อมูลที่ labeled ส่วนนึง อีกส่วนเป็นข้อมูลที่ไม่มี label พอเติมข้อมูล unlabeled จะได้โมเดลที่ผลดีขึ้นเพราะข้อมูลมากขึ้นแล้วใช้ data correlation จากที่มี label สรุปผลกันอะไรทำนองนี้

References

[1] https://en.wikipedia.org/wiki/Multiple_instance_learning cite wiki ละกัน มันมีมานานแล้วราวๆยี่สิบสามสิบปี เป็นอย่างน้อย

[2] Keeler, James, David Rumelhart, and Wee Leow. “Integrated segmentation and recognition of hand-printed numerals.” Advances in neural information processing systems 3 (1990). [pdf]

[3] https://en.wikipedia.org/wiki/Microelectronics_and_Computer_Technology_Corporation บริษัทจาก 1982 ถึงราวๆ 2000 และเลิกกิจการปี 2004 เป็นเรื่องราววินเทจแล้วมั้ง

[4] Dietterich, Thomas G., Richard H. Lathrop, and Tomás Lozano-Pérez. “Solving the multiple instance problem with axis-parallel rectangles.” Artificial intelligence 89.1–2 (1997): 31–71. [pdf]

[5] Amores, Jaume. “Multiple instance classification: Review, taxonomy and comparative study.” Artificial intelligence 201 (2013): 81–105. [pdf]

[6] https://en.wikipedia.org/wiki/Weak_supervision

[7] https://scikit-learn.org/stable/modules/semi_supervised.html

[8] Hou, Le, et al. “Patch-based convolutional neural network for whole slide tissue image classification.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2016. [pdf]

[9] https://keras.io/examples/vision/attention_mil_classification/

[10] Ilse, Maximilian, Jakub Tomczak, and Max Welling. “Attention-based deep multiple instance learning.” International conference on machine learning. PMLR, 2018. [pdf] [GitHub]

--

--

No responses yet