در صنعت هوانوردی، «خراب کردن چیزها» گزینهای نیست.
اگر سرور خراب شود، آن را راهاندازی مجدد میکنید. اگر موتور جت در حین پرواز از کار بیفتد، عواقب آن فاجعهبار است. به همین دلیل است که صنعت هوانوردی از نگهداری پیشگیرانه (تعویض قطعات بر اساس برنامه زمانی چه نیاز باشد چه نباشد) به سمت نگهداری پیشبینانه (PdM) (تعویض قطعات دقیقاً قبل از خرابی) تغییر مسیر داده است.
برای دانشمندان داده، این یک مسئله رگرسیون سری زمانی نهایی است. هدف محاسبه عمر مفید باقیمانده (RUL) یک موتور بر اساس دادههای سنسور (دما، فشار، ارتعاش) است.
به طور سنتی، این کار نیازمند مدلهای فیزیکی پیچیده یا معماریهای یادگیری عمیق تنظیم شده دستی (LSTMها) بود. اما اخیراً، یادگیری ماشینی خودکار (AutoML) به نقطهای رسیده است که میتواند از تنظیم دستی بهتر عمل کند.
در این راهنما، بر اساس تحلیل با استفاده از مجموعه داده NASA C-MAPSS، ما یک خط لوله برای پیشبینی خرابی موتور با استفاده از دو غول متنباز میسازیم: AWS AutoGluon و H2O.ai.
ما اینجا فقط تصاویر را طبقهبندی نمیکنیم؛ ما با دادههای سری زمانی چند متغیره سروکار داریم. خط لوله نیاز به تبدیل لاگهای خام سنسور به هدف رگرسیون (RUL) دارد.
ما از مجموعه داده معروف شبیهسازی سیستم پیشرانه هوایی مدولار تجاری NASA (C-MAPSS) استفاده میکنیم. این مجموعه داده شامل دادههای شبیهسازی شده اجرا تا خرابی است.
مجموعه داده به طور صریح RUL را به ما نمیدهد؛ بلکه چرخه فعلی را میدهد. ما باید هدف را محاسبه کنیم.
منطق: RUL = حداکثرچرخهموتور - چرخهفعلی
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 | 14.07 | | H2O | RMSE | RUL | 44.85 |
**تحلیل: \ AutoGluon به طور قابل توجهی از H2O بهتر عمل کرد (14.07 در مقابل 44.85). در زمینه موتورهای جت، حاشیه خطای 14 چرخه برای برنامهریزی نگهداری قابل قبول است. حاشیه خطای 44 چرخه مدل را بیفایده میکند.
چرا AutoGluon برنده شد؟
برای برنامههای صنعتی که شامل دادههای چند متغیره پیچیده است، AutoML دیگر فقط یک ابزار نمونهسازی نیست—بلکه یک قابلیت تولید است.
با تغییر از انتخاب دستی مدل به رویکرد خودکار ترکیبی مانند AutoGluon، توسعهدهندگان میتوانند زمان مهندسی را از هفتهها به ساعات کاهش دهند و در عین حال دقت برتری به دست آورند.
نکته کلیدی برای توسعهدهندگان: هنگام ساخت برنامههای صنعتی اینترنت اشیا، تلاش خود را بر فاز 1 (مهندسی داده) متمرکز کنید - پاکسازی لاگهای سنسور و محاسبه RUL صحیح. بگذارید AutoML انتخاب مدل را مدیریت کند.
\


