คำถามเกี่ยวกับ Deep...
 
Notifications
Clear all

คำถามเกี่ยวกับ Deep learning ที่เหมาะสมสำหรับการทำนายอายุการใช้งานของชิ้นส่วนในอุตสาหกรรม (Predictive Maintenance)

12 ข้อความ
3 Users
10 Likes
10.2 K Views
KWN
 KWN
(@kwn)
Active Member
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 7
Topic starter  

#predictive_maintenance #machine_learning

ผมต้องการทำนายอายุการใช้งานของ component ครับ ทางเรามีดาต้าดังรูป ดาต้าที่มีเป็นแบบ static ไม่ใช่ time-series ครับ

https://ibb.co/7gK6pj0

ดาต้าประกอบด้วย 
 
Component ID: แต่ละ ID คือชิ้นงานคนละชิ้นครับ 
 
Days in service: ปกติ component นี้จะมีกำหนดเปลี่ยนใหม่ทุกๆ 12 เดือนครับ ซึ่งจริงๆ แล้วอาจจะยังใช้งานได้อยู่ ดังนั้นข้อมูลในช่องนี้จะเป็นระยะเวลาที่ถูกใช้งานจนถึงวันเปลี่ยนออกครับ 
 
Crack: เป็นการเช็คจากการมองเห็นว่ามีรอยแตกบน component แต่ละชิ้นหรือไม่ครับ 
 
Media 1, 2, 3 exposure: เป็นการเก็บข้อมูลจากการที่ component มีการสัมผัส media type 1, 2, 3 ขณะติดตั้งใช้งานนานทั้งหมดกี่ชั่วโมงครับ 
 
No. actuation (Media 1, 2, 3): เป็นการเก็บข้อมูลจากจำนวนครั้งที่ component มีการบิดตัวขณะติดตั้งใช้งานและสัมผัส media แต่ละชนิดครับ
 
Total actuation: จำนวนรวมการบิดตัวทั้งหมดของ component ขณะติดตั้งใช้งาน
 
และช่องสุดท้ายคือเรา classify เฟสการเสื่อมไว้ 3 เฟสคือ 1 (ต่ำ), 2 (ปานกลาง) และ 3 (สูง ต้องเปลี่ยนทันที) ครับ 
 
ผมรบกวนขอคำแนะนำดังนี้ครับ
 
Step 1: ผมอยากลองพัฒนาอัลกอริทึมที่สามารถทำนายได้ว่า ระยะเวลาการเสื่อมจากเฟสที่ 1 ไปเฟสที่ 2 เท่าไหร่ (กี่วัน) / ระยะเวลาการเสื่อมจากเฟสที่ 2 ไปเฟสที่ 3 เท่าไหร่ (กี่วัน) จากข้อมูลแบบ static ที่มีอยู่ พอแนะนำได้หรือไม่ครับว่า พอจะมีวิธีการ Deep learning แบบใดบ้างที่ผมควรจะโฟกัสครับ 
 
Step 2: ถ้า Step 1 ใช้งานได้จริง เราจะลองสร้างชุดทดลองขนาดเล็กเพื่อทดสอบ component และเก็บดาต้าอื่นในกระบวนการผลิตจากชุดทดลองแบบ Time-series เริ่มต้นจาก component ใหม่จนกระทั่งเสื่อมระยะที่ 3 เพื่อนำดาต้ามาเทรนโมเดลครับ ในขั้นตอนนี้ วิธีการ Deep learning แบบใดบ้างน่าจะเหมาะสมครับ
 
ขอบคุณมากครับ
This topic was modified 6 years ago 2 times by The Neural Engineer

   
อ้างอิง
nameless
(@nameless)
Member Moderator
เข้าร่วมเมื่อ: 7 years ago
ข้อความ: 7
 

สวัสดีครับ ปัญหาของคุณ @KWN นั้นน่าสนใจ และสามารถนำวิธีการทาง machine learning เข้ามาใช้เพื่อช่วยแก้ปัญหานี้ได้ และอาจต้อง Formulate ปัญหาให้ชัดเจนขึ้นก่อนครับ ผมขออนุญาตลองแนะนำเบื้องต้นดังนี้ก่อนนะครับ  ถ้ามีอะไรสามารถถามเพิ่มเติมได้ครับ

Step 1 เนื่องจากตัวแปรที่ต้องการทำนายคือ “ระยะเวลาการเสื่อมจากเฟส X —> X+1” ตัวแปรนี้ ไม่มีในตาราง ดังนั้นวิธีการที่ง่ายที่สุดคือต้องเก็บข้อมูลตัวแปรนี้ขึ้นมาก่อนครับ ซึ่งอาจจะเพิ่มสองคอลัมภ์ ลงไปในตารางคือ y1 (ระยะเวลาจากเฟส 1 —> 2) และ y2 (ระยะเวลาจากเฟส 2 —> 3)

โดย y1 และ y2 อาจจะเป็น 0 สำหรับอุปกรณ์ที่ปัจจุบันอยู่ในเฟส 1 และ y2 เป็น 0 สำหรับอุปกรณ์ที่ปัจจุบันอยู่เฟส 2 ครับ

ถ้าสามารถเก็บข้อมูลตรงนี้ได้เราจะสามารถมองเป็นปัญหา Regression ได้ครับ (เนื่องจากข้อมูลตรงนี้ไม่อยู่ในตารางและสำคัญมาก ไม่แน่ใจว่าเก็บได้ไหมครับ)

นอกจากนี้พบว่าข้อมูลเป็นแบบ static, structured data และยังมีจำนวนไม่เยอะ ในเบื้องต้นอาจจะไม่จำเป็นต้องใช้ deep learning (ซึ่งเหมาะกับปัญหา Unstructured data และข้อมูลมีเยอะ) และสามารถใช้วิธีการที่ง่ายกว่า เช่น linear regression หรือ decision tree เพื่อสร้างโมเดลที่เป็น baseline มาก่อนได้ครับ  จุดสำคัญอีกอย่างคืออย่างน้อยควรมีปริมาณข้อมูลมากพอที่จะทำระบบ Validation test เพื่อทดสอบความแม่นยำของระบบ (จะมีกรณีศึกษาของ Matlab และ Azure ที่คล้ายๆ กับปัญหาของคุณ KWN ครับ)

Step 2 ถ้าเก็บข้อมูลเป็น time series และมีจำนวนข้อมูลมากพอ สามารถใช้ LSTM เข้ามาช่วยได้ (การใช้ LSTM สำหรับปัญหาแนวนี้ จะมีตัวอย่างกรณีศึกษาของ Azure และการแข่งขัน VSB ครับ)

This post was modified 6 years ago by nameless
This post was modified 6 years ago 2 times by The Neural Engineer

   
KWN reacted
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 7 years ago
ข้อความ: 412
 

ผมขออนุญาตให้ไอเดียเสริมเล็กน้อยนะครับ  เนื่องจากการ Formulate ปัญหาและการเก็บข้อมูลนั้นแม้นไม่ค่อยมีคนพูดถึงเมื่อเราพูดถึง AI หรือ Machine Learning แต่จริงๆ แล้วเป็นกระบวนการครึ่งแรกที่สำคัญที่สุดเลยทีเดียวครับ ในกรณีที่คุณ @KWN สามารถเก็บตัวแปร y1 และ y2 ได้อย่างที่คุณ @nameless กล่าวก็อาจจะไปต่อได้

ทว่าในกรณีที่ตัวแปร y1 และ y2 เราไม่สามารถเก็บได้ เราอาจจำเป็นต้อง simplify ปัญหาลงมา (ซึ่งอาจไม่ตรงตามความต้องการแรก แต่พอเป็นไปได้ในข้อมูลที่มีอยู่ในมือ)

ยกตัวอย่างเช่น เราอาจเปลี่ยนปัญหาใหม่ เป็น "ทำนายเฟสการเสื่อม" (เฟส 1, 2 หรือ 3) จากตัวแปรอื่นๆ ปัญหานี้จะกลายเป็น 3-classes classification 

ในกรณีที่เราทำปัญหา classification นี้สำเร็จด้วย Neural Networks และมีความแม่นยำเพียงพอ   ตรง Layer สุดท้ายก่อนที่จะ Classify เราอาจมองเวกเตอร์ ณ Layer นี้เป็น representation ของอุปกรณ์แต่ละ ID และเราอาจพอที่จะบอกได้ว่า อุปกรณ์ใน Class 1 ตัวไหนที่ใกล้เคียง Class2 (คือมีแนวโน้มที่จะเปลี่ยนจากเฟส 1 ไป เฟส2 มากหรือน้อย แต่ไม่สามารถบอกระยะเวลาได้)  หรืออุปกรณ์ใน Class2 ใดที่ใกล้เคียง Class3 ครับ 

การ Formulate ปัญหานี้อาจไม่ตอบโจทย์เรื่อง "การทำนายอายุการใช้งานที่เหลือ" (ซึ่งยากกว่า Classification พอสมควรและต้องการข้อมูลเยอะกว่า) แต่จะสามารถทำบนข้อมูลที่มีอยู่ได้ครับ และก็อาจจะช่วยประหยัดเวลาของ Expert ที่ต้องมาประเมินเฟสของอุปกรณ์ทุกชิ้นได้ดีเลยครับ  นอกจากนี้เราอาจทำ Visualize เพิ่มเติมทำให้เราเข้าใจธรรมชาติของตัวแปรต่างๆ ที่มีต่อเฟสได้ดียิ่งขึ้น

ในขั้นถัดไป เราอาจลองพยายาม Formulate ปัญหาในรูปแบบอื่นๆ เพิ่มเติม ก็อาจได้ปัญหาที่สามารถตอบโจทย์ที่ต้องการ บนข้อมูลที่เรามีอยู่ได้มากขึ้นครับ (อีกทางเลือกคือ ออกแบบกระบวนการเก็บข้อมูลเพิ่มเติมแบบลงแรงน้อยที่สุด เพื่อให้การทำนายทำได้ตรงใจมากขึ้น)

This post was modified 6 years ago 4 times by The Neural Engineer

   
KWN reacted
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 7 years ago
ข้อความ: 412
 

ผมขออนุญาตช่วยแปะรูปตัวอย่างข้อมูลที่คุณ @KWN แนบมาให้ขึ้นในบอร์ด ตรงนี้นะครับ


   
KWN reacted
ตอบกลับอ้างอิง
KWN
 KWN
(@kwn)
Active Member
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 7
Topic starter  

ขอบคุณคุณ nameless และคุณ The Neural Engineer สำหรับคำแนะนำมากครับ 

 

เบื้องต้นผมสนใจ formulate ปัญหาแบบ regression ครับ ตามที่คุณ nameless แนะนำ แต่เรามีข้อจำกัดในการเก็บข้อมูลในทางปฏิบัติครับ เนื่องจาก component อันนี้เมื่อถูกเปลี่ยนออก ยกตัวอย่างเช่น หลังจากใช้งานมาแล้ว 12 เดือน component ใหม่จะถูกใส่แทนที่ครับ ทำให้เราไม่สามารถ track การเปลี่ยนเฟสแบบต่อเนื่องได้ครับ เมื่อถูกเปลี่ยนออกมาแล้ว เราต้องอาศัยผู้เชี่ยวชาญด้าน material science เพื่อ inspect ว่าการเสื่อมอยู่ในเฟส 1, 2 หรือ 3 ครับผม ความท้ายทายที่สำคัญคือ ชิ้นงานอันนี้ในขณะใช้งานจะติดตั้งอยู่ใน package โลหะแบบปิด เราไม่สามารถเปิดออกดูได้จนกว่าจะถึงเวลาเปลี่ยนชิ้นใหม่ครับ 

 

ในขณะที่ยังไม่ถูกเปลี่ยนออก ข้อมูลที่เราทราบคือ process conditions (ในคอลัมภ์ B และ D to K) เท่านั้นครับ

 

ขอบคุณคุณ The Neural Engineer ที่ช่วยแปะรูปครับ ปัญหา 3-class classification ที่แนะนำน่าสนใจมากครับ เนื่องจากข้อจำกัดของข้อมูลที่มี การทำนายโดยบอกความน่าจะเป็นว่า component ใดๆ ที่ผ่านกระบวนการใช้งานมาระยะหนึ่งจนถึงปัจจุบัน โดยใช้ข้อมูลในคอลัมภ์ B, D to K จะมีความเสื่อมอยู่ในคลาสใด และ (ถ้าเป็นไปได้) ความน่าจะเป็นที่จะเปลี่ยนจากคลาสปัจจุบัน ไปเป็นคลาสถัดไปเท่าไหร่ หากมี link ตัวอย่างปัญหาที่มีข้อจำกัดด้านข้อมูลคล้ายๆ กันที่ผมพอไปศึกษาด้วยตัวเองแนะนำ จะขอบคุณมากครับ

 


   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 7 years ago
ข้อความ: 412
 
Posted by: KWN

การทำนายโดยบอกความน่าจะเป็นว่า component ใดๆ ที่ผ่านกระบวนการใช้งานมาระยะหนึ่งจนถึงปัจจุบัน โดยใช้ข้อมูลในคอลัมภ์ B, D to K จะมีความเสื่อมอยู่ในคลาสใด และ (ถ้าเป็นไปได้) ความน่าจะเป็นที่จะเปลี่ยนจากคลาสปัจจุบัน ไปเป็นคลาสถัดไปเท่าไหร่ หากมี link ตัวอย่างปัญหาที่มีข้อจำกัดด้านข้อมูลคล้ายๆ กันที่ผมพอไปศึกษาด้วยตัวเองแนะนำ จะขอบคุณมากครับ

ผมเองก็ยังไม่เคยเจอปัญหาที่คล้ายกันจังๆ นะครับ แต่พออธิบายไอเดียอย่างง่ายได้ดังนี้  ลองดูไว้เป็นทางเลือกนะครับ

โดยกระบวนการสร้าง Vector Representation บน layer สุดท้ายก่อน Softmax นั้นสามารถทำได้ตรงๆ (ตรงนี้ง่าย) หลังจากฝึก Neural Networks สำเร็จแล้วและได้ตรวจสอบผลลัพธ์เป็นที่พอใจแล้ว (ความยากอยู่จุดนี้)

โดยลองค้นรูปใน literatures มาจะคล้ายๆ รูปนี้ครับ ในรูปนี้ คือ 3-Layers Neural Network (FC1-3) โดยมี output เป็น Softmax ที่ FC4 ที่ทำหน้าที่ Classify ข้อมูล (FC ย่อมาจาก Fully Connected ซึ่งเป็น layer พื้นฐานที่สุดของ Neural Networks [ใน Keras เรียกว่า Dense Layer])

เราสามารถเทรน Neural Network แบบปกติ (FC1-4) ด้วยข้อมูลปัจจุบันของคุณ @KWN และเมื่อเทรนจนได้ผลลัพธ์ที่น่าพอใจแล้ว output ของ FC3 (ก่อนเข้า FC4) จะเป็น embedding vector ที่ represent vector ของแต่ละอุปกรณ์ ID ได้ครับ

พอได้ embedding vectors ที่แทนอุปกรณ์แต่ละ ID แล้ว การเปลี่ยน "ระยะทาง" ไปเป็น "ความน่าจะเป็น" ก็ทำได้หลายวิธี เช่นที่แนะนำในกระทู้นี้ครับ  https://stackoverflow.com/questions/23459707/how-to-convert-distance-into-probability

This post was modified 6 years ago 8 times by The Neural Engineer

   
KWN reacted
ตอบกลับอ้างอิง
KWN
 KWN
(@kwn)
Active Member
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 7
Topic starter  

ขอบคุณมากสำหรับคำแนะนำจากคุณ The Neural Engineer และคุณ nameless อีกครั้งครับ ผมลองเอา keywords จากแนวคิดที่แนะนำไปค้นหาความหมายเพิ่มเติม เนื่องจากมี terminology ใหม่สำหรับผมเยอะ  ? และลองไปศึกษาเพิ่มเติมจากหน้ารีวิวแหล่งเรียนรู้ชั้นนำและ tutorial บนกูเกิลครับ พบตัวอย่างการทำ multi-class classification ด้วย neural network เพื่อแยกชนิดของดอกไม้ 3 ชนิด จากขนาดของส่วนประกอบที่ใช้เป็น features ผมมีข้อสงสัยเพิ่มเติมดังนี้ครับ

1. ตัวอย่างปัญหาการแยกชนิดของดอกไม้ 3 ชนิดดังกล่าวสามารถเทียบเคียงได้กับแนวคิดที่คุณ @neural-engineer แนะนำหรือเปล่าครับ

2. จากแนวคิดที่คุณ The Neural Engineer แนะนำ การทำ 3-Layers Neural Network คือการวางชั้น hidden layer 3 layers และ output layer 1 layer โดยใช้ฟังก์ชัน softmax ที่ output layer เพื่อให้ได้ output ที่บอกเราว่า ชิ้นงานนี้มีความน่าจะเป็นที่จะอยู่ในเฟส 1, 2 หรือ 3 เท่าไหร่ ไม่แน่ใจว่าผมเข้าใจถูกต้องหรือเปล่าครับ

3. คำว่า fully connected คือ hidden layer หรือเปล่าครับ ถ้าใช่ ผมกำหนด network topology เป็นแบบนี้ถูกต้องหรือเปล่าครับ

x feature inputs -> [256 hidden nodes] -> [64 hidden nodes] -> [16 hidden nodes] -> 3 outputs

มีข้อแนะนำเบื้องต้นเพื่อกำหนดจำนวน hidden nodes หรือเปล่าครับ

4. หากตัวอย่างปัญหาการแยกชนิดของดอกไม้ 3 ชนิดข้างต้นสามารถเทียบเคียงได้กับแนวคิดที่คุณ The Neural Engineer แนะนำ การเข้าถึง embedding vector (ที่ represent vector ของแต่ละอุปกรณ์ ID) ทำได้อย่างไรเมื่อใช้ Keras ในการสร้างโมเดลครับ

ขอบคุณมากครับ ? 

This post was modified 6 years ago by KWN

   
ตอบกลับอ้างอิง
Page 1 / 2
Share: