دانشجو ارشد هوش مصنوعی توسعه دهنده (پایتون - جنگو) حوزه تحقیقاتی تخصصی: سیستم پیشنهاد دهنده شغل: توسعه دهنده تیم امنیت ایرانسل شغل دوم: مدرس پایتون
جبر خطی در هوش مصنوعی
جبر خطی چیست؟
جبر خطی شاخهای از ریاضیات است که به بررسی و مطالعۀ ماتریسها، بردارها، فضاهای برداری (فضاهای خطّی)، تبدیلات خطی، و دستگاههای معادلات خطی میپردازد.
جبر خطی مطالعه بردارها و توابع خطی است و به عنوان یک کلید در زمینه یادگیری ماشین استفاده می شود.
در این پست 8 مثال رایج از استفاده جبر خطی در یادگیری ماشین زده می شود که به شما کمک می کند درکی از جبر خطی در هوش مصنوعی پیدا کنید.
هشت مثال ما با عنوان های زیر لیست شده است:
- Data-set and Data Files
- Images and Photographs
- Linear Regression
- Regularization
- Principal Component Analysis
- Singular-Value Decomposition
- Latent Semantic Analysis
- Recommend-er Systems
به صورت خلاصه اگر بخواهیم مثال ها را در یک جمله خلاصه کنیم، می گوییم هرچیزی را که بتوان با بردار نمایش داد یا حالت ماتریسی داشته باشد، جبر خطی است.
در ادامه حتما مثال هایی دقیق تر برایتان از هر کدام از بخش ها می زنیم و این مقاله صرفا نشان دادن درجه اهمیت یادگیری جبر خطی در هوش مصنوعی است.
1. مجموعه داده و مستندات داده (DataSet and Data Files)
به عنوان مثال فرض کنید شما جدولی دارید که هر ردیف مشاهدات را در اختیارتان می گذارد و هر ستون نیز ویژگی آن مشاهدات را بیان می کند. برای اینکه کاربردی تر متوجه موضوع شوید، با مجموعه داده ای Iris بحث را پیش می بریم. (از لینک داده شده، می توانید این مجموعه داده ای را دانلود نمایید.)
مجموعه داده ای Iris چیست؟
مجموعه داده های Iris flower برای اولین بار در سال 1936 توسط Ronald Fisherکه یکی از پدران تحلیل آماری مدن است مورد استفاده قرار گرفت. هدف وی نمایش عملیاتی بودن تفکیک کننده خطی روی تعداد مشاهداتی تجربی اندک بود ( هر کدام از 150 داده، یک نمونه از گل زنبق را نشان می دهند). هر کلاس شامل یک سوم مجموع کل داده است و با چهار متغیر توصیفی عددی بیان شده است. هنگامی که این متغیرها ترکیب می شوند، قادر به تفکیک کلاس ها از یکدیگر هستند.
مزیت استفاده از اینگونه مجموعه داده، سهولت بارگذاری و کار با آن ها و کاوش در آن ها برای اهداف مختلف (نظیر یادگیری با نظارت و نمایش گرافیکی) است. همچنین با استفاده از آن ها فرآیند مدل سازی در بیشتر کامپیوترها (بدون توجه به اینکه آن کامپیوتر چه مشخصاتی دارد) زمان نیست. به علاوه، رابطه بین کلاس ها و وظایف متغیرهای توصیفی به خوبی شناخته شده است. (برای درک بهتر این مجموعه داده ای، جلوتر مخصوصا با این مجموعه داده در انتشارات Dataio کار خواهیم کرد.)
- بخشی از مجموعه داده گل زنبق:
- 5.1,3.5,1.4,0.2,Iris-setosa
- 4.9,3.0,1.4,0.2,Iris-setosa
- 4.7,3.2,1.3,0.2,Iris-setosa
- 4.6,3.1,1.5,0.2,Iris-setosa
- 5.0,3.6,1.4,0.2,Iris-setosa
مجموعه داده ای که در بالا مشاهده می کنید، درواقع یک ماتریس است. یک ساختار داده کلیدی در جبر خطی
هنگامی که داده ها را به ورودی ها و خروجی ها تقسیم می کنید (توسط مدل یادگیرنده supervised یا نظارتری) مانند اندازه گیری ها و انواع گل ها، شما یک ماتریس (X) و یک بردار (y) دارید. این بردار یک ساختار کلیدی دیگر در جبر خطی است.
به عبارت دیگر ماتریس های پراکندگی به فرمت ماتریسی مرتب شده اند و سطرها و ستون های آن ها، متغیرهای مجموعه داده هستند. عناصر ماتریس شامل پراکندگی هایی هستند که مقادیر x آن به وسیله سطرهای ماتریس و مقادیر y آن به وسیله ستون ها مشخص می شوند. عناصری که روی قطر ماتریس قرار دارند، شامل توزیع هیستوگرام یا سایر ارائه های تک متغیره از متغیر موجود در سطر و ستون آن هستند.
بنابراین می توانیم بگوییم که داده ها بردار می شوند و می توانند به یک مدل در یک زمان یا در یک دسته ارائه شوند.
نکته: اگرچه این مجموعه های داده برای فعالیت های آموزشی شما بسیار مفید و جالب هستند ولی بعد از مدتی موجب ایجاد محدودیت در تجربیاتی که می توانید با آن ها به دست یابید، می شوند. علی رغم بینش ارائه شده توسط آن ها، برای این که پیشرفت کنید باید به موضوعات واقعی و پیچیده علوم داده ای دسترسی پیدا کنید.
2. تصاویر و عکس ها (Images and Photographs)
شاید علاقه شما این باشد که بیشتر با تصاویر کار کنید. اگر خیلی ساده با هر تصویر بخواهیم برخورد کنیم، باید بگوییم هر تصویری که با آن کار می کنید، با یک ساختار جدولی با سطر و ستون و وجود پیکسل در یک مختصات سر و کار دارید. (یک پیکسل در هر سلول در تصاویر سیاه و سفید و سه پیکسل در هر سلول برای تصاویر رنگی)
بنابراین هر عکس بیانگر نمونه ای دیگر از ماتریس ها و جبر خطی هستند.
عملیاتی که بر روی تصویر انجام می گیرد مانند بریدن عکس (crop)، پوسته پوسته شدن(Scaling) و ... با استفاده از نشانه گذاری و عملیات جبر خطی توصیف می شود.
3. رگرسیون خطی (Linear Regression)
رگرسیون خطی یک روش قدیمی از آمار برای توصیف روابط بین متغیرها است. اغلب در یادگیری ماشین برای پیش بینی مقادیر عددی که به پیش بینی اعداد حقیقی می پردازیم، از رگرسیون استفاده می شود. در رگرسیون شاخص های زیادی وجود دارند که همه آن ها از جبر اقلیدسی نشأت گرفته اند.
به عنوان مثال می خواهیم تعداد دوستان یک کاربر و مدت زمانی که همان کاربر در سایت زمان می گذراند را در هر روز محاسبه کنیم. اینطور فرض کنید که هرچقدر دوستان نزدیک شما بیشتر در آن شبکه حضور داشته باشند، بنابراین شما زمان بیشتری را در سایت می گذرانید. فرمولی که برای محاسبه این قسمت استفاده می شود به شکل زیر است:
4. منظم کردن یا Regularization
ما اغلب به دنبال ساده ترین مدل های ممکن هستیم که به بهترین شکل در مشکل ما به کار برود. مدل های ساده تر اغلب بهتر از نمونه های خاص با داده غیر قابل مشاهده هستند.
در بسیاری از روش های که شامل ضرایب مانند روش های رگرسیون و شبکه های عصبی هستند، مدل های ساده تر اغلب با مدل هایی با مقادیر ضریب کمتر شناخته می شوند.
یک تکنیک که اغلب برای تشویق یک مدل برای به حداقل رساندن اندازه ضرایب در حالی که بر روی داده ها مناسب است، استفاده می شود. پیاده سازی های رایج شامل فرم های L2 و L1 تنظیم است.
هر دوی این فرم های regularization، اندازه گیری قدر یا طول ضرایب به عنوان یک بردار هستند و روش هایی مستقیما از جبر خطی به نام عدد بردار به دست می آیند.
5. تجزیه و تحلیل اجزای اصلی (Principal Component Analysis)
گاهی وقت ها یک مجموعه داده دارای ستون های زیادی است، شاید ده ها، صدها، هزاران یا بیشتر که برای کاهش این ویژگی ها از تحلیل مولفه استفاده می کنیم که البته تنها روش نیست، اما یکی از محبوب ترین روش ها برای انجام این کار است.
تحلیل مولفه های اصلی تکنیکی است که به شما برای تعریف مجموعه کوچک تر و مرتبط تر از ویژگی ها کمک می کند. ویژگی های جدید، ترکیب خطی ( که نوعی چرخش است ) از ویژگی های موجود هستند. پس از چرخش فضای ورودی، اولین بردار از مجموعه خروجی دارای بیشترین انرژی سیگنال ( به عبارت دیگر واریانس آن ) است. دومین بردار، عمود بر بردار اول بوده و حاوی بیشترین انرژی باقیمانده است. بردار سوم، عمود بر دو بردار اول بوده و شامل بیشترین انرژی باقیمانده از دو مورد اول است و به همین ترتیب ادامه میابد.
در حالت ایده آلِ AWGN، بردارهای اولیه شامل تمامی اطلاعات سیگنال ورودی است و سایر موارد فقط حاوی نویز هستند. به علاوه تا زمانی که مبنای خروجی، عمود بودن بردار ها بر یک دیگر است، می توانید یک نسخه تقریبی از مجموعه داده ورودی را تججزیه و ترکیب کنید. پارامتر کلیدی که برای تصمیم گیری در مورد تعداد بردارهای پایه مورد استفاده قرار می گیرد، انرژی است. از آن جا که الگوریتم مذکور برای تجزیه مقادیر منفرد است، بردارهای ویژه (همان بردارهای پایه) و مقادیر ویژه (انحراف معیار مربوط به آن بردارها ) کلماتی هستند که غالباً در هنگام مطالعه در مورد PCA به آن ها ارجاع داده می شود و از آنان سخن به میان می آید. معمولاً، عدد اصلی (کاردینالیتی) مجموعه خروجی، عددی است که وجود 95 درصد ( گاهی 99 درصد) از انرژی (واریانس) ورودی را در خروجی تضمین می کند. تعریف دقیق PCA فراتر از محدوده این مقاله است و از این رو فقط متوجه شدیم که کار آن با بردار است و به عبارتی از جبر خطی استفاده می کند.
6. تجزیه مقدار منفرد (Singular-Value Decomposition)
روش دیگری که برای کاهش ویژگی به کار می رود، تجزیه مقدار منفرد یا به اختصار SVD است. این روش از طریق تقسیم ماتریسی کاهش را انجام می دهد و بنابراین از جبر خطی استفاده می کند.
کار هایی که با روش SVD انجام می شود، شامل انتخاب ویژگی، تجسم، کاهش نویز، و ... است.
7. تحلیل معنا شناختی پنهان (Latent Semantic Analysis)
در حوزۀ یادگیری ماشین زیر مجموعه ای به نام پردازش زبان طبیعی یا Natural Language Processing یا به اختصار NLP داریم و بسیار رایج است برای نمایش مستندات از ماتریس های بزرگی از کلمات استفاده کنند. لازم به ذکر است LSA عموماً پس از پردازش توسط TfidfVectorizer یا CountVectorizer اعمال می شود. در مقایسه با PCA، LSA در ابتدا الگوریتم SVD را روی مجموعه داده ورودی اعمال می کند. (این مجموعه داده عموما ماتریسی تُنُک است)، سپس مجموعه ای معنا شناختی از کلماتی که معمولاً با یکدیگر ارتباط مفهومی دارند ایجاد می کند. به همین دلیل از LSA زمانی که ویژگی ها همگن بوده، (مانند کلمات درون یک سند) یا تعداد آن ها بسیار زیاد است، استفاده می شود.
به عنوان مثال، ستون های ماتریس ممکن است کلمات معروف در واژگان باشند، و ردیف ها ممکن است جملات، پاراگرافها، صفحات یا اسناد متن با سلولهای ماتریس مشخص شده به عنوان شمارش یا فرکانس تعداد دفعاتی که کلمه رخ داده باشد، نمایش داده شود.
8. سیستم های پیشنهاد دهنده (Recommend-er System)
یکی از دقدقه های همه وب سایت ها پیشنهاد دادن محصول درست، به کاربر درست است.
توسعه سیستم های پیشنهاد دهنده عمدتا به روش جبر خطی انجام می شود. یک مثال ساده در محاسبه شباهت بین بردارهای رفتار ضعیف مشتری با استفاده از اندازه گیری های فاصله از قبیل فاصله اقلیدس یا محصولات نقطه ای است.
روشهای تقسیم بندی ماتریس مانند SVD به طور گسترده ای در سیستم های توصیه شده مورد استفاده قرار می گیرند تا از دادۀ کاربر به صورت ذهنی برای جستجو و مقایسه آن ها استفاده کند.
مطلبی دیگر از این انتشارات
5 کاربرد یادگیری ماشین در زندگی روزمره که از آن ها بی خبریم
مطلبی دیگر از این انتشارات
دوره Reinforcement Learning: بیاید شروع کنیم
مطلبی دیگر از این انتشارات
کدام زبان برنامه نویسی را شروع کنیم؟