বিমান চলাচলে, "জিনিস ভাঙা" কোনো বিকল্প নয়।
যদি একটি সার্ভার ক্র্যাশ করে, আপনি এটি রিস্টার্ট করেন। যদি একটি জেট ইঞ্জিন উড্ডয়নের মাঝামাঝি ব্যর্থ হয়, পরিণতি বিপর্যয়কর। এই কারণেই বিমান শিল্প প্রিভেন্টিভ মেইনটেন্যান্স (প্রয়োজন হোক বা না হোক একটি সময়সূচী অনুযায়ী যন্ত্রাংশ প্রতিস্থাপন) থেকে প্রেডিক্টিভ মেইনটেন্যান্স (PdM) (ভেঙে যাওয়ার ঠিক আগে যন্ত্রাংশ প্রতিস্থাপন) এ স্থানান্তরিত হচ্ছে।
ডেটা সায়েন্টিস্টদের জন্য, এটি চূড়ান্ত টাইম সিরিজ রিগ্রেশন সমস্যা। লক্ষ্য হলো সেন্সর ডেটা (তাপমাত্রা, চাপ, কম্পন) এর উপর ভিত্তি করে একটি ইঞ্জিনের অবশিষ্ট ব্যবহারযোগ্য জীবন (RUL) গণনা করা।
ঐতিহ্যগতভাবে, এর জন্য জটিল পদার্থবিজ্ঞান মডেল বা ম্যানুয়ালি টিউন করা ডিপ লার্নিং আর্কিটেকচার (LSTMs) প্রয়োজন ছিল। কিন্তু সম্প্রতি, অটোমেটেড মেশিন লার্নিং (AutoML) এমন পর্যায়ে পরিপক্ক হয়েছে যেখানে এটি ম্যানুয়াল টিউনিংকে ছাড়িয়ে যেতে পারে।
এই গাইডে, NASA C-MAPSS ডেটাসেট ব্যবহার করে বিশ্লেষণের উপর ভিত্তি করে, আমরা দুটি ওপেন-সোর্স দিকপাল: AWS AutoGluon এবং H2O.ai ব্যবহার করে ইঞ্জিন ব্যর্থতা পূর্বাভাস দেওয়ার জন্য একটি পাইপলাইন তৈরি করব।
আমরা এখানে শুধু ছবি শ্রেণিবদ্ধ করছি না; আমরা মাল্টিভেরিয়েট টাইম-সিরিজ ডেটা নিয়ে কাজ করছি। পাইপলাইনে কাঁচা সেন্সর লগকে একটি রিগ্রেশন লক্ষ্য (RUL) এ রূপান্তর করতে হবে।
আমরা বিখ্যাত NASA কমার্শিয়াল মডুলার অ্যারো-প্রপালশন সিস্টেম সিমুলেশন (C-MAPSS) ডেটাসেট ব্যবহার করছি। এতে রান-টু-ফেইলিউর সিমুলেটেড ডেটা রয়েছে।
ডেটাসেট স্পষ্টভাবে আমাদের RUL দেয় না; এটি আমাদের বর্তমান চক্র দেয়। আমাদের লক্ষ্য গণনা করতে হবে।
যুক্তি: RUL = MaxCycleofEngine - CurrentCycle
import pandas as pd # Load dataset (Simulated example structure) # Columns: ['unit_number', 'time_in_cycles', 'sensor_1', ... 'sensor_21'] df = pd.read_csv('train_FD001.txt', sep=" ", header=None) # 1. Calculate the maximum life of each engine unit max_life = df.groupby('unit_number')['time_in_cycles'].max().reset_index() max_life.columns = ['unit_number', 'max_life'] # 2. Merge back to original dataframe df = df.merge(max_life, on='unit_number', how='left') # 3. Calculate RUL (The Target Variable) df['RUL'] = df['max_life'] - df['time_in_cycles'] # Drop columns we don't need for training (like max_life) df = df.drop(columns=['max_life']) print(df[['unit_number', 'time_in_cycles', 'RUL']].head())
প্রেডিক্টিভ মেইনটেন্যান্সে, সাধারণ "অ্যাকুরেসি" কাজ করে না। আমাদের পূর্বাভাস কতটা দূরে তা পরিমাপ করতে হবে।
আমরা RMSE (রুট মিন স্কয়ার এরর) এর উপর নির্ভর করি।
import numpy as np def calculate_rmse(y_true, y_pred): """ y_true: The actual Remaining Useful Life y_pred: The model's prediction """ mse = np.mean((y_true - y_pred)**2) return np.sqrt(mse)
নোট: বিশ্লেষণটি RMSLE (লগারিদমিক এরর) কেও হাইলাইট করে। এটি গুরুত্বপূর্ণ কারণ জীবনের কম পূর্বাভাস (আগে ব্যর্থ হওয়ার পূর্বাভাস) নিরাপদ, কিন্তু অতিরিক্ত পূর্বাভাস (বাস্তবতার চেয়ে পরে ব্যর্থ হওয়ার পূর্বাভাস) বিপজ্জনক। RMSLE বিভিন্ন স্কেল জুড়ে আপেক্ষিক ত্রুটি ভালোভাবে পরিচালনা করে।
আমরা দুটি ফ্রেমওয়ার্ক পরীক্ষা করেছি কোনটি ব্যাপক ম্যানুয়াল টিউনিং ছাড়াই জটিল, নয়েজি সেন্সর ডেটা ভালোভাবে পরিচালনা করতে পারে।
AutoGluon (AWS দ্বারা উন্নত) স্বয়ংক্রিয়ভাবে একাধিক মডেল (নিউরাল নেট, LightGBM, CatBoost) স্ট্যাকিং এবং এনসেম্বলিং এর একটি কৌশল ব্যবহার করে।
কোড:
from autogluon.tabular import TabularPredictor # AutoGluon handles feature engineering automatically # 'RUL' is our target label calculated in Phase 1 predictor = TabularPredictor(label='RUL', eval_metric='root_mean_squared_error').fit( train_data=df_train, time_limit=600, # Train for 10 minutes presets='best_quality' ) # Inference y_pred = predictor.predict(df_test) results = predictor.evaluate(df_test) print(f"AutoGluon RMSE: {results['root_mean_squared_error']}")
H2O এই ক্ষেত্রে একজন অভিজ্ঞ, এর স্কেলেবল ডিস্ট্রিবিউটেড কম্পিউটিং সক্ষমতার জন্য পরিচিত।
কোড:
import h2o from h2o.automl import H2OAutoML h2o.init() # Convert pandas df to H2O Frame hf_train = h2o.H2OFrame(df_train) hf_test = h2o.H2OFrame(df_test) # Train aml = H2OAutoML(max_models=20, seed=1) aml.train(y='RUL', training_frame=hf_train) # Inference preds = aml.predict(hf_test) perf = aml.leader.model_performance(hf_test) print(f"H2O RMSE: {perf.rmse()}")
বিশ্লেষণে এই নির্দিষ্ট সেন্সর ডেটাসেটে প্রয়োগ করার সময় কর্মক্ষমতায় একটি বিশাল পার্থক্য প্রকাশ পেয়েছে।
| লাইব্রেরি | মেট্রিক | লক্ষ্য: RUL | ফলাফল (কম ভালো) | |----|----|----|----| | AutoGluon | RMSE | RUL | ১৪.০৭ | | H2O | RMSE | RUL | ৪৪.৮৫ |
**বিশ্লেষণ: \ AutoGluon উল্লেখযোগ্যভাবে H2O কে ছাড়িয়ে গেছে (১৪.০৭ বনাম ৪৪.৮৫)। জেট ইঞ্জিনের প্রেক্ষাপটে, ১৪ চক্রের ত্রুটি মার্জিন রক্ষণাবেক্ষণ নির্ধারণের জন্য গ্রহণযোগ্য। ৪৪ চক্রের ত্রুটি মার্জিন মডেলটিকে অকেজো করে দেয়।
AutoGluon কেন জিতল?
জটিল মাল্টিভেরিয়েট ডেটা সম্পৃক্ত শিল্প অ্যাপ্লিকেশনগুলির জন্য, AutoML আর শুধু একটি প্রোটোটাইপিং টুল নয়—এটি একটি প্রোডাকশন সক্ষমতা।
ম্যানুয়াল মডেল নির্বাচন থেকে AutoGluon এর মতো স্বয়ংক্রিয় এনসেম্বল পদ্ধতিতে স্যুইচ করে, ডেভেলপাররা উচ্চতর নির্ভুলতা অর্জন করার সাথে সাথে ইঞ্জিনিয়ারিং সময় সপ্তাহ থেকে ঘন্টায় কমাতে পারে।
ডেভেলপারদের জন্য মূল টেকঅ্যাওয়ে: ইন্ডাস্ট্রিয়াল IoT অ্যাপ তৈরি করার সময়, আপনার প্রচেষ্টা পর্যায় ১ (ডেটা ইঞ্জিনিয়ারিং) এ ফোকাস করুন সেন্সর লগ পরিষ্কার করা এবং সঠিক RUL গণনা করা। AutoML কে মডেল নির্বাচন পরিচালনা করতে দিন।
\


