| یادگیری ماشین وداده‌کاوی |
| --- |
|  |
| موضوع‌ها
* طبقه‌بندی آماری
* خوشه‌بندی
* تحلیل رگرسیون
* روش تشخیص ناهنجاری
* یادگیری قانون وابستگی
* یادگیری تقویتی
* پیش بینی ساختاریافته
* مهندسی ویژگی
* یادگیری ویژگی
* یادگیری ماشین برخط
* یادگیری نیمه‌نظارتی
* یادگیری بی‌نظارت
* Learning to rank
* Grammar induction

 |
| یادگیری با نظارت(**طبقه‌بندی آماری** •  **تحلیل رگرسیون**)
* یادگیری درخت تصمیم
* Ensembles (Bagging, بوستینگ، جنگل تصادفی)
* *k*-NN
* رگرسیون خطی
* دسته‌بندی کننده بیز ساده
* شبکه‌های عصبی مصنوعی
* رگرسیون لجستیک
* پرسپترون
* Relevance vector machine (RVM)
* ماشین بردار پشتیبانی

 |
| خوشه‌بندی
* کاهش و خوشه‌بندی ترازمند و بازکردی با بهره‌گیری از رده‌بندی
* خوشه‌بندی سلسله‌مراتبی
* خوشه‌بندی کی-میانگین
* الگوریتم امید ریاضی–بیشینه کردن
* DBSCAN
* OPTICS
* انتقال میانگین

 |
| کاهش ابعاد
* تحلیل عاملی
* CCA
* تحلیل مؤلفه‌های مستقل
* آنالیز افتراقی خطی
* فاکتورگیری نامنفی ماتریس
* تحلیل مؤلفه‌های اصلی
* t-SNE

 |
| پیش‌بینی ساختاریافته
* مدل‌های گرافیکی (شبکه‌های بیزی، میدان تصادفی شرطی، مدل پنهان مارکف)

 |
| روش تشخیص ناهنجاری
* الگوریتم کی-نزدیکترین همسایه
* فاکتور پرتی محلی

 |
| شبکه عصبی مصنوعی
* خودرمزگذار
* یادگیری عمیق
* پرسپترون چندلایه
* RNN
* ماشین بولتزمن محدود شده
* ترانسفورمر بینایی
* SOM
* شبکه عصبی پیچشی

 |
| یادگیری تقویتی
* کیو-یادگیری
* SARSA
* یادگیری تفاوت زمانی

 |
| نظریه
* Bias-variance dilemma
* نظریه یادگیری محاسباتی
* Empirical risk minimization
* Occam learning
* یادگیری احتمالا تقریبا صحیح
* Statistical learning
* VC theory

 |
| حوزه‌های یادگیری ماشین
* NIPS
* ICML
* ML
* JMLR
* ArXiv:cs.LG

 |
| * ن
* ب
* و
 |

در زمینه شبکه‌های عصبی، **توجه** تکنیکی است که توجه شناختی را تقلید می‌کند.

این روش باعث تمرکز بیشتر مدل بر روی یکسری داده‌ها مهم در حین مرحله آموزش شده و اثر مابقی موارد را در این مرحله کاهش می‌دهد. (این تصور وجود دارد که شبکه باید قدرت محاسباتی بیشتری را روی آن قسمت‌های کوچکتر اما مهم داده اختصاص دهد)

در واقع توجه تکنیکی است که در ان به ورودی‌ها یک‌وزن w\_i اختصاص داده شده، که این وزن نشان‌دهنده اهمیت و تأثیر این داده بر روند آموزش مدل است.

اینکه کدام قسمت از داده‌ها از دیگر نمونه‌ها مهم‌تر بوده بسته به وزن‌های انتخابی داشته و از طریق آموزش داده‌ها و مدل با روش گرادیان کاهشی می‌توان به این خواسته رسید.

این تکنیک در طیف گسترده‌ای از مدل‌های یادگیری ماشین، از جمله در پردازش زبان طبیعی و بینایی کامپیوتر، مورد استفاده قرار می‌گیرد.

شبکه‌های ترانسفورماتور (شبکه تبدیل کننده) برای دستیابی به قدرت بیان خود از مکانیسم‌های توجه استفاده گسترده می‌کنند. سیستم‌های بینایی رایانه مبتنی بر شبکه‌های عصبی کانولوشن نیز می‌توانند از مکانیسم‌های توجه بهره‌مند شوند

از متداول‌ترین کاربردهای این تکنینک، تمرکز بر روی نتیجه است که از حاصل نقطه‌ای بین بردارهای داده‌ها برای تعیین توجه دیگر نقاط استفاده می‌کند، همچنین چندین مکانیزم توجه مختلف را برای هدایت کلی یک شبکه یا شبکه فرعی در این روش ترکیب می‌شود.

استفاده از این تکنیک در مدل‌های مختلف یادگیری ماشین در کارهای مختلف تأثیرگذار بوده و قسمت پرکاربردی از مدل‌های پیشرو در زمنیه‌های مختلف شده‌است.

انواع مختلفی از مکانیزم توجه وجود دارد، همانند توجه نرم، توجه سخت و توجه چند واحدی که هرکدام مزایای کاربردی در مدل‌های مختلف را دارا می‌باشد.

ایده کلی
--------

روش کار این تکنینک به صورت کلی به این ترتیب است که یکسری ورودی متوالی همانند {\displaystyle t\_{i}} که به وسیله اندیس i شماره گذاری شده‌اند داریم. شبکه عصبی یک‌وزن معادل w\_i برای هر {\displaystyle t\_{i}} می‌سازد با احتمال آنکه w\_i منفی نباشد و داشته باشیم.


∑

i

w

i

=
1

{\displaystyle \sum \_{i}w\_{i}=1}

{\displaystyle \sum _{i}w_{i}=1}برای هر {\displaystyle t\_{i}} یک بردار {\displaystyle v\_{i}} اختصاص داده می‌شود به طوری که مقدار این بردار از دگرنمایی واژه برای تکه i ام محاسبه می‌شود. در این حالت میانگین وزنی {\displaystyle \sum \_{i}w\_{i}v\_{i}} خروجی مکانیزم توجه خواهد بود.

در اینجا مکانیزم کلید-جستار مقادیر وزن‌های تغییر داده شده را به دست می‌آورند. به طوری که از روش دگرنمایی واژه برای هر قسمت بردار جستارهای مربوطه {\displaystyle q\_{i}} و بردار کلید {\displaystyle k\_{i}} ساخته می‌شود. پس از این وزن‌ها از بیشینه هموار ضرب داخلی عبارت {\displaystyle q\_{i}k\_{j}} به دست می‌آید. در اینجا i نشان‌دهنده تکه فعلی در ورودی‌ها و j نشان‌دهنده تکه‌ای است که به آن در ورودی متصل است.

در برخی از معماری‌های استفاده شده از تکنیک توجه، چندین بخش مجزا برای پیاده‌سازی این تکنیک استفاده می‌شود به طوری که هرکدام مقادیر جستار، کلید و بردارهای مستقل خود را دارند.

محدودیتی که می‌تواند این روش ایجاد کند هزینه محاسبات کامپیوتری نسبتاً زیاد برای آموزش مدل است زیرا که در هر مرحله نیاز است که وزن‌ها و امتیازهای توجه برای داده‌ها محاسبه شده و براساس آن خروجی تشکیل شود. همچنین استفاده از این تکنیک باعث غیرقابل تفسیر کردن مدل مدنظر می‌شود. در واقع فهمیدن چرایی تمرکز مدل بر روی قسمتی از داده‌ها می‌تواند چالش‌برانگیز باشد.

یک مثال ترجمه زبان
------------------

در اینجا مثالی از ساخت مدلی که بتواند یک عبارت انگلیسی را به فرانسوی ترجمه کند آمده‌است. (به نمودار پایین دقت کنید. در ابتدا با رمز گداری و رمز گشایی و پیوند زدن واحدهای توجه مکانیزم شروع می‌شود. واحد توجه یک شبکه عصبی از ترکیب وزنی رمزگذاری خروجی‌ها به رمزگشایی داده‌های ورودی استفاده می‌کند)

یک مدل رمزگذار و رمزگشا با استفاده از تکنیک توجه، قسمت میانی مربوط به بخش‌های مکانیزم توجه بوده، قسمت سمت چپ مربوط به بخش رمزگذاری و رمزگشایی داده‌ها و در آخر قسمت سمت راست مربوط به خروجی دادن داده‌های محاسبه شده‌است.

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

افسانه| برچسب | شرح |
| --- | --- |
| ۱۰۰ | حداکثر طول جمله |
| ۳۰۰ | اندازه تعیین شده (اندازه کلمه) |
| ۵۰۰ | طول بردار پنهان |
| 10K | سایز دیکشنری از ۱۰ هزار کلمه |
| *x*, *y* | یک بردار دیکشنری x → x به عنوان یک جدول جستجو به جای ضرب برداری اجرا شده‌است |
| x , y | بردار تعبیه کلمه به طول ۳۰۰. بردارها معمولاً از پروژه‌های دیگر مانند Word2Vec. یا.Glove از قبل محاسبه می‌شوند |
| h | ۵۰۰ بردار رمز گذاری پنهان و بلند در هر برهه از زمان، این بردار همه کلمات قبلی پیشین خود را خلاصه می‌کند. h نهایی را می‌توان به عنوان بردار "جمله" یا به گفته هینتون یک بردار اندیشه در نظر گرفت |
| s | ۵۰۰ رمزگشایی مخفی و طولانی نورون RNN رمزنگاری شده |
| E | ۵۰۰ نورن RNN رمز گذاری شده ۳۰۰ + ۳۰۰ ورودی، ۵۰۰ خروجی |
| D | دو لایه رمزگشایی یک لایه با ۵۰۰ نورون و لایه ای با ۳۰۰ نورون |
| نمره | ۱۰۰ نمره تراز بندی |
| w | ۱۰۰ بردار بلند، وزن توجه اینها وزنه‌های "نرم" و قابل تغییر هستند که در حین عبور رو به جلو تغییر می‌کنند، در مقابل وزن‌های عصبی "سخت" و غیرقابل تغییر که در مرحله یادگیری تغییر می‌کنند. |
| A | ماژول توجه - یک شبکه کاملاً متصل که خروجی آن نمره بلند از ۱۰۰ است |
| H | ۵۰۰ \* ۱۰۰٬۱۰۰ بردار پنهان h به یک ماتریس متصل شده‌اند |
| c | ۵۰۰ متن بردار بلند = h \* W.
C خطی ترکیبی از بردار H با اندازه W است |

 |

این جدول محاسبات را در هر مرحله نشان می‌دهد. برای شفافیت، از مقادیر و اشکال عددی خاص به جای حروف استفاده می‌شود. اشکال تو در تو ماهیت خلاصه h را نشان می‌دهد، جایی که هر h حاوی تاریخچه ای از کلمات قبل از آن است. در اینجا، امتیازات توجه ساخته شده‌است تا وزن‌های مورد توجه را به‌دست آورید.

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |
| --- |
| مرحله |

 | ایکس | 

|  |
| --- |
| h, H = خروجی رمزگذاری شده

اینها ۵۰۰ \* ۱ بردار هستند که به صورت شکل نشان داده می‌شوند |

 | y i-1 =

```
 رمزگشایی ورودی به توجه
```
 | 

|  |
| --- |
| نمره تراز بندی شده |

 | 

|  |
| --- |
| وزن توجه |

 | 

|  |
| --- |
| **c = بردار متن نوشته = H \* W** |

 | 

|  |
| --- |
| **y = رمزگشایی خروجی** |

 |
| ۱ | I | </img> = بردار رمزگذاری برای"I" | - | - | - | - | - |
| ۲ | love | </img> = بردار رمزگذاری برای"I love" | - | - | - | - | - |
| ۳ | you | </img> = بردار رمزگذاری برای"I love you" | - | - | - | - | - |
| ۴ | - | - | 

|  |
| --- |
| **Y1هنوز وجود ندارد بنابراین ما به جای آن از این استفاده می‌کنیم** |

{{سخ}}</img> | [.۶۳ -۳٫۲ -۲٫۵ .۵ .۵.. .] | [.۹۴ .۰۲ .۰۴ ۰ ۰.. .] | .۹۴ \*</img> + .02 \*</img> + .04 \*</img> | je |
| ۵ | - | - | y 1 | [-۱٫۵ -۳٫۹ .۵۷ .۵ .۵.. .] | [.۱۱ .۰۱ .۸۸ ۰ ۰.. .] | .۱۱ \*</img> + .01 \*</img> + .88 \*</img> | 

|  |
| --- |
| t' |

 |
| ۶ | - | - | y 2 | [-۲٫۸ .۶۴ -۳٫۲ .۵ .۵.. .] | [.۰۳ .۹۵ .۰۲ ۰ ۰.. .] | .۰۳ \*</img> + .95 \*</img> + .02 \*</img> | aime |

به عنوان یک ماتریس، وزن‌های توجه نشان می‌دهند که چگونه شبکه تمرکز خود را متناسب با زمینه تنظیم می‌کند.



|  |  |  |  |
| --- | --- | --- | --- |
|  | I | love | you |
| je | .۹۴ | .۰۲ | .۰۴ |
| t' | .۱۱ | .۰۱ | .۸۸ |
| aime | .۰۳ | .۹۵ | .۰۲ |

این دیدگاه به آدرس وزن‌های توجه مسئله "توانایی توضیح دادن" که شبکه‌های عصبی مورد انتقاد قرار می‌گیرند، می‌پردازد. شبکه‌هایی که ترجمه لفظی را بدون توجه به ترتیب کلمات انجام می‌دهند، اگر این اصطلاحات قابل تحلیل باشند، ماتریس غالب مورب دارند. تسلط خارج از مورب نشان می‌دهد که مکانیسم توجه از ظرافت بیشتری برخوردار است.

در اولین عبور از رمزگشایی، ۹۴٪ از وزن توجه به اولین کلمه انگلیسی "I" است، بنابراین شبکه کلمه "je" را ارائه می‌دهد. در قسمت دوم رمزگشایی، ۸۸٪ از وزن توجه به کلمه سوم انگلیسی "you" است، بنابراین "t" را ارائه می‌دهد. در آخرین قسمت، ۹۵٪ از وزن توجه به کلمه انگلیسی دوم "love" است، بنابراین "aime" را ارائه می‌دهد.

پیوند به بیرون
--------------

* الکس گریوز (۴ مه ۲۰۲۰) ، توجه و حافظه در یادگیری عمیق (سخنرانی ویدیویی)، DeepMind / UCL، از طریق YouTube.
* تخته سفید الگوریتم رسا - توجه از طریق یوتیوب

منابع
-----

1. 1 2  Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N.; Kaiser, Lukasz; Polosukhin, Illia (2017-12-05). "Attention Is All You Need". arXiv:1706.03762 [cs.CL].
2. ↑  Ramachandran, Prajit; Parmar, Niki; Vaswani, Ashish; Bello, Irwan; Levskaya, Anselm; Shlens, Jonathon (2019-06-13). "Stand-Alone Self-Attention in Vision Models". arXiv:1906.05909 [cs.CV].