توصيفگر ها :
پيش بيني نقص نرم افزار , يادگيري ماشين , شبكه هاي عصبي , رمزگذار خودكار , رويدادهاي نادر , تشخيص ناهنجاري
چكيده فارسي :
در هنگام توسعه يك سيستم نرم افزاري، نقصها و خطاهاي احتمالي ميتوانند خطرات و زيانهاي جبرانناپذيري ايجاد كنند و از اين رو تضمين كيفيت و عملكرد مطلوب نرمافزارها از اهميت بالايي برخوردار است . يكي از روشهاي پيشرفته براي حل اين مسئله، استفاده از روشهاي هوشمند و دقيق، مانند يادگيري ماشين است كه براي پيشبيني و كاهش نقصهاي نرمافزاري كاربرد دارد. هدف نهايي اين روشها، كاهش تعداد عيوب در محصولات نرمافزاري و افزايش قابليت اطمينان و رضايت كاربر است. به طور خاص، اين پژوهش بر پيشبيني نقص نرمافزار با تمركز بر كاهش ريسكهاي عملكردي و احتمالي نقصهاي نرمافزاري تمركز دارد.
با توجه به ماهيت مسئله كه تشخيص ناهنجاري (وجود نقص در نرمافزار) است و با بررسي مجموعه دادههاي موجود در زمينه تشخيص نقص نرمافزار، مشخص ميشود كه توزيع دادهها بين دادههاي داراي نقص و بدون نقص متفاوت است. تعداد كم دادههاي مربوط به نقصها (ناهنجاريها) باعث ميشود استفاده از روشهاي ساده يادگيري ماشين و يادگيري عميق با چالشهاي جدي مواجه شود. بنابراين، در اين پژوهش با استفاده از مجموعه دادههاي موجود ناسا براي تشخيص نقص نرمافزار، ابتدا عملكرد روشهاي رايج يادگيري ماشين و شبكههاي عصبي را بررسي ميكنيم و سپس با بهرهگيري از روشهاي يادگيري عميق و شبكههاي رمزگذار خودكار، عملكرد اين روشها را با روشهاي قبلي مقايسه كرده و به بهبود عملكرد در زمينه تشخيص نقص در نرمافزار دست مييابيم.
در اين پژوهش، براي پيشبيني نقص نرمافزار از هفت الگوريتم مختلف يادگيري ماشين استفاده شده است كه شامل جنگل تصادفي، بگينگ، پرسپترون چندلايه، تابع پايه شعاعي، بيز ساده، بيز ساده چندجملهاي، ماشين بردار پشتيباني، شبكههاي عصبي و شبكههاي رمزگذار خودكار ميشود. اين الگوريتمها بر روي مجموعه دادههاي در دسترس از ناسا براي پيشبيني نقص نرمافزار پيادهسازي شده است.
در اين پژوهش، با توجه به يافتهها و نتايج بررسي عملكرد شبكهها و با در نظر گرفتن دو كلاس دادهاي موجود و نامتوازن بودن مجموعه دادهها، مشخص شد كه روشهاي كلاسيك يادگيري ماشين براي تشخيص دادههاي نقصدار با مشكل مواجه هستند. اما در مقابل، شبكههاي رمزگذار خودكار به راحتي ميتوانند چالشها را در زمينه تشخيص ناهنجاري در يك مجموعه داده نامتوازن رفع كنند. بنابراين، اين پژوهش با استفاده از شبكههاي رمزگذار خودكار، يك طبقهبنديكننده براي تشخيص رويدادهاي نادر ساخته است. اين روش به عنوان يك راهكار نوين، به دقت در تشخيص رويدادهاي نادر كمك ميكند. به طور خلاصه، مدل رمزگذار خودكار پيشنهادي با دستيابي به دقت 97 درصد بر روي مجموعه دادههاي MC1 و 96 درصد بر روي دادههاي KC1، عملكرد بهتري نسبت به تمامي روشهاي ديگر پيادهسازي شده در اين پژوهش ارائه داده است. همچنين با بررسي ماتريسهاي درهمريختگي، دادههاي داراي نقص در هر دو مجموعه داده با دقت بسيار بيشتري تشخيص داده شدهاند و تعداد كمتر دادههاي مثبت و منفي كاذب نشاندهنده عملكرد بهتر اين مدل در مقايسه با ساير روشها است.
چكيده انگليسي :
During the development of a software system, potential defects and errors can pose irrecoverable risks and damages. Therefore, ensuring the quality and desired performance of software is of utmost importance. One advanced approach to addressing this issue is the use of intelligent and precise methods such as machine learning, which is used for predicting and reducing software defects. The ultimate goal of these methods is to decrease the number of defects in software products and enhance reliability and user satisfaction. Specifically, this research focuses on predicting software defects with an emphasis on reducing functional risks and potential software errors.
Given the nature of the problem, which is anomaly detection (identifying defects in software), and upon examining the available dataset in the field of software defect detection, it becomes evident that the distribution of data between defective and non-defective instances is different. The scarcity of data related to defects (anomalies) poses serious challenges for using simple machine learning methods and deep learning. Therefore, in this study, using NASA's available dataset for software defect detection, we first investigate the performance of common machine learning methods and neural networks. Subsequently, by employing deep learning methods and autoencoder networks, we compare their performance with previous methods and aim to improve the detection of software defects.
This research utilizes seven different machine learning algorithms for predicting software defects, including Random Forest, Bagging, Multi-layer Perceptron, Radial Basis Function, Naive Bayes (Gaussian), Naive Bayes (Multinomial), Support Vector Machine, Artificial Neural Networks, and Autoencoder Networks. These algorithms have been implemented on NASA's available datasets to predict software defects.
In this research, based on the findings and results of evaluating the performance of networks and considering the existence of two imbalanced data classes, it was evident that classical machine learning methods face challenges in detecting defective data. However, in contrast, autoencoder networks can easily overcome challenges in anomaly detection within an imbalanced dataset. Therefore, this study has constructed a classifier for detecting rare events using autoencoder networks. This method serves as a novel solution that significantly improves accuracy in detecting rare events. In summary, the proposed autoencoder model achieved better performance compared to all other implemented methods in this research, reaching an accuracy of 97% on the MC1 dataset and 96% on the KC1 dataset. Additionally, through confusion matrix analysis, it was observed that the autoencoder model detected defective data with much higher accuracy and fewer false positives and negatives, demonstrating its superior performance compared to other methods.