Tensor decomposition and feature selection
เปเปอร์ tier2/3 conference จากธีสิสปอโทผมเองเมื่อนานมากๆแล้ว
สมัยอยู่จุฬาฯ อาจารย์บอกว่าเรียนโทสามารถจบในปีเดียวได้ ตอนนั้นก็เอาหัวข้อสมัยปอตรีคือ dimensionality reduction หรือ feature extraction มาทำต่อ ตอนนั้นครุคริงุงิหัดๆทำ วิธีคือรู้ pipeline ทั้งหมดก่อน อ่านแนวคิดในวงการที่เกี่ยวข้อง เกลาแนวคิด หาจุดที่ทำเพิ่มได้ ส่วนมากคือชัดๆ แล้วรันทำการทดลอง วนไปตามกระบวนการวิจัยทางวิทยาศาสตร์
ช่วงนั้น อ่านบล๊อกอาจารย์ปืน สรรพฤทธิ์ ที่เนคเทค อธิบาย PCA/LDA Titech ocw อาจารย์ SUGIYAMA อธิบาย data analysis มี LPP/local FLD แล้วก็มีพี่ปอเอกภาคไฟฟ้าทำ 2DPCA/2DLDA face recognition ไรซักอย่าง ก็กดๆกูเกิ้ลอ่านทุกอย่างเลย เรียน multilinear algebra กับอาจารย์ฟิสิกส์ที่มหิดลด้วย เพราะเค้าว่ามันเป็นฟิสิกส์
ทีนี้ แรกเริ่มเดิมทีตอนปอตรี เริ่มจาก PCA ก่อน เพราะที่วิศวะคอมจุฬาสมัยนั้นไม่สอนในห้อง ทีแรก implement ใน JAVA อย่างฮา ดูวิดิโอ Gilbert Strang วิชา Linear Algebra เพราะไม่มีสอนตามประมวลรายวิชาหลักสูตร ดูวิดิโอ Andrew Ng วิชา Machine Learning จนติดตรงนึงเรื่อง limitations และ scree test สำหรับ model selection เลือกจำนวน bases
ตอนปอตรี เอา limitation เรื่อง robustness มาทำ เพราะ PCA รันบน Anscombe’s quartet จะเจ๊ง อันนี้รู้สึกจะเขียนในอีก entry นึงใน medium นี่แหละ ตอนนั้นก็ยืมหนังสือ robust statistics จากห้องสมุดบัญชีกับเปเปอร์คณิตศาสตร์ประกันภัยเป็นรีวิวเปเปอร์อันนึงมาอ่าน เจอสูตรเปลี่ยน Gaussian เป็น อะไรที่ robust มากมาย เลยเลือกสมการมาสองอัน แล้วทำ robust PCA ออกมาจบตรี ส่ง JCSSE เปเปอร์แรกงุงิ รันในชุดข้อมูล UCI กับ Anscombe’s อันนึง
ประเด็นคือตอนปอโทต้องทำมีชิ้นงานมากขึ้น เลยลองทำพวก handwriting recognition กับ face recognition ดู เค้าว่า feature vector ไม่จำเป็นต้อง vectorized เอาเมตริกซ์มาคูณดื้อๆแทน row/column correlation หา variance รัน solver ก็ได้ ได้ผลดีกว่าด้วย รันง่ายด้วย
ตอนนั้นอ่านๆไปเจอเปเปอร์ HOSVD และเชื่อว่าสมการมันอุกิ๊ว แม้ในตอนนี้เท่าที่ดู ก็ยังไม่มีวิธีทำ model selection ที่ถูกต้อง เพราะมีเลขตัวเดียวกับ bases กลุ่มละ n ตัวตามจำนวน modes ของอาเรย์ ตอนนั้นเหลือบเจอคอร์สวิชาของ Michael Mahoney ตอนนั้นอยู่ Stanford มี Candecomp Parafac กับ Tucker แล้วก็ HOSVD ใน curriculum วิชานึง ต่อมาพึ่งรู้ว่าเป็นสัมมนาปอเอก เลยรู้จัก Tensor Methods
พบว่า 2DPCA/2DLDA เทียบเท่า Tucker และ model selection จริงๆควรทำบน core/score tensor ง่าวๆขนาดเท่าจำนวน bases คูณกัน เลยทำอัลกอง่ายๆอันนึงแบบ greedy เลือกอันที่ค่ามากสุดใน core tensor แบบ scree test ของ PCA ใหม่ มี cut-off เลือกทีละตัวแล้วค่อยๆเลือกทีละ basis ไม่ใช่ sum sort ตาม dimension ผลคือได้ SOTA โดยมองเป็นแบบว่าแต่ละ subspace ไม่เกี่ยวกัน รัน feature selection ด้วย greedy ดื้อๆ ได้คะแนนรีวิวตอนส่ง ICONIP ค่อนข้างสูงมากทีเดียว ตกใจ ตอนนั้นอาจารย์บุญเสริมถามว่าทำไมส่งอันนี้ ตอบไปว่าอยากจบปีเดียว อาจารย์ประภาสบอกให้ไปทำต่อที่ญี่ปุ่น ตอนนั้นอาจารย์คนญี่ปุ่นบางท่านคุยๆก็ทำให้รู้จัก submodularity ขึ้นมา ตอนนั้นเค้าว่าน่าจะเหมาะกว่า และอาจอธิบายว่าทำไมทำปญออัลกอแบบนี้แล้วดี เพราะถึงเป็นตรงที่แก้ ตัวผลก็ยัง suboptimal ชัดเจนเพราะจับ output vectorized แล้วรัน LDA/FLD ก็ยังได้ผลมากขึ้นอีก มีอาจารย์ที่แคนาดาเค้าทำหัวข้อนี้พอควร อีเมล์มาถามทำต่อ เค้ารันด้วย spectral clestering ได้ผลมากขึ้นอีก แต่ตัวอัลกอไม่ใช่การแก้ objective function เป็นแค่ meta learning บนอัลกอที่ผิดพลาดที่ SOTA อยู่ดี
คลับคล้ายคลับคลาว่าอาจารย์ที่มหิดลทักว่าควรทำจาก HOSVD แล้วแก้ objective function หรือใช้ Neural Networks น่าจะเป็น elegant solution กว่า รวมถึงอาจารย์ที่ญี่ปุ่นเมกาหลายคนด้วยที่เคยคุยๆ บางคนเชียร์ให้เล่น structured sparsity หรือ Bayesian priors เพราะถ้า derive ออกมาได้จะมี impact กับพวก method-of-moments ด้วย แค่จับแทน Candecomp Parafacs ที่ใช้เป็น solver ในบาง pipeline แล้ววัดผลได้เลย หัวข้อนี้รันในเครื่องบนCPUหรือGPU/TPUก็ได้ ถ้าว่างๆชีวิตปลอดภัยมีอิสระเสรี จนตอนนี้ก็ยังไม่มีคนแก้ปัญหานี้นะ แทบไม่มี attempts ใดๆที่ตีพิมพ์ ราวๆ 14–15 ปีละ open problem จริงๆเยอะมากๆ พออยู่โลกนี้สักพักจะพบว่าหา open problem ไม่ยาก แต่การสร้าง solution ที่ matters เป็นสาระต่างหาก จนกว่า task/problem จะถูกถือว่า solved ในทาง evaluation
เขียนเกี่ยวกับชิ้นงานตัวเองบ้างไรบ้าง เหมือน lightning talk โดยเป็นงานเก่าๆ contribution ระดับปอโท เลยดู solution ง่ายๆ ไม่ได้มีอะไรมาก
เพิ่มเติม: ในธีสิสปอโท ลองกับวิธีอื่นเช่น 2DLPP, 2DDNE, 2DLSDA ที่เป็นพวก spectral methods neighborhood graphs ก็ได้ผลดีเช่นกัน ดู sig กว่าเวลาเรียง bases ใหม่ด้วยเทียบกับ 2DLDA
อ่ะ 8 มิถุนา 2567 เอารีวิวที่ได้ในเมล์บ๊อกซ์มาแปะ เราสามารถแปะได้นะครับ
ไหนๆก็ไหนๆ โพสต์รีวิว R1 ตอนส่ง Journal ACM CSUR (A*/Q1*) เลยละกันครับ ไหนๆก็เจอละ ไม่มี R2 แก้อันนี้แล้ว accepted ไม่โพสต์ response นะ ส่วนรูบริคตอนผมเป็น reviewer CSUR และอื่นๆ ไม่โพสต์นะ เดี๋ยวปลิวหมด หรือปลิวก็ดีวะ 55++ เสร็จแน่ UMD CS/ECE/Neuroscience & US Army devcom research lab ตัวเขียว
จริงๆในแลป บางคนที่โดนดรอปมีเปเปอร์ CVPR ก็มี ICCV ก็มี บางคนมาจากประเทศแถบที่ผลิตน้ำมัน
References
[1] Wiriyathammabhum, Peratham, and Boonserm Kijsirikul. “Basis selection for 2DLDA-based face recognition using Fisher score.” Neural Information Processing: 16th International Conference, ICONIP 2009, Bangkok, Thailand, December 1–5, 2009, Proceedings, Part I 16. Springer Berlin Heidelberg, 2009. [link]