آزمایشگاه آزاد؛ بدون نیاز به ورود
یک نورون چطور دو گروه رو جدا میکنه؟
این شکل ۶۰ نقطه از دو گروه داره. یک نورون ساده از روی مختصات هر نقطه حدس میزنه به کدام گروه تعلق داره؛ تو هم میتونی اندازهٔ قدمهای آموزش و تعداد دورها رو عوض کنی.
آزمایش رو شروع کناز نرخ یادگیری ۰٫۲ و ۱۰ دور شروع کن. روی همین مجموعهٔ ثابت، دقت حدود ۷۲ درصد و تعداد اشتباهها ۱۷ تاست؛ دقت روی دادههای آموزشی است، نه یک آزمون مستقل.
آزمایشگاه در حال آماده شدنه…
حالا خودت امتحان کن
هر بار فقط یک چیز رو تغییر بده تا اثرش رو ببینی. قبل از اجرا، نتیجه رو حدس بزن.
دورهای بیشتری آموزش بده
نرخ یادگیری رو روی ۰٫۲ نگه دار. تعداد دورها رو اول روی ۱ و بعد روی ۲۰ بذار و دقت و تعداد اشتباهها رو مقایسه کن.
حدست چیه؟ اگر همین ۶۰ نقطه بیشتر از یک بار مرور بشن، دقت چه تغییری میکنه؟
توضیح نتیجه رو ببین
با یک دور، مدل ۳۰ نقطه از ۶۰ تا رو درست دستهبندی میکنه؛ با ۲۰ دور، ۵۱ تا رو درست میگه. در این اجرای ثابت دقت از ۵۰ به ۸۵ درصد میرسه و اشتباهها از ۳۰ به ۹ کم میشن. بیشتر بودن دورها همیشه تضمین نمیکنه روی دادههای تازه هم بهتر عمل کنه.
قدم آموزش را خیلی بزرگ کن
تعداد دورها رو روی ۱۰ ثابت نگه دار. نرخ یادگیری رو از ۰٫۲ به ۰٫۵ ببر و دقت دو اجرا رو کنار هم بذار.
حدست چیه؟ آیا قدم بزرگتر همیشه نورون رو در همین تعداد دور بهتر آموزش میده؟
توضیح نتیجه رو ببین
در این دادهٔ ثابت، نرخ ۰٫۲ به دقت حدود ۷۱٫۷ درصد و ۱۷ اشتباه میرسه؛ با نرخ ۰٫۵ دقت ۵۰ درصد و ۳۰ اشتباه میشه. قدم بزرگتر میتونه از تنظیم مناسب رد بشه و نتیجهٔ این آموزش رو بدتر کنه؛ پس از این مثال نمیشه گفت یک نرخ برای همهٔ دادهها بهترینه.
نرخ کوچک را با قدمهای کافی بسنج
تعداد دورها رو روی ۵۰ بذار. یک بار نرخ یادگیری ۰٫۰۱ و بار دیگر ۰٫۲ رو امتحان کن و تعداد اشتباهها رو ببین.
حدست چیه؟ با تعداد دور یکسان، نرخ کوچکتر در این داده به همان دقت میرسه یا پایینتر میمونه؟
توضیح نتیجه رو ببین
با نرخ ۰٫۰۱، دقت حدود ۸۳٫۳ درصد و اشتباهها ۱۰ تاست؛ با نرخ ۰٫۲، دقت حدود ۹۳٫۳ درصد و اشتباهها ۴ تا میشه. نرخ کوچکتر در این تعداد دور وزنها رو به اندازهٔ کافی جابهجا نکرد؛ این نتیجه مخصوص همین مجموعه و قاعدهٔ آموزش است.
پشت این حرکت چه خبره؟
از مختصات تا یک احتمال
z = w0 + w1*x + w2*y; p = 1 / (1 + exp(-z))
نورون اول مختصات افقی و عمودی هر نقطه رو با وزنها ترکیب میکنه و به آن یک مقدار میده. بعد تابع sigmoid آن مقدار رو به عددی بین صفر و یک میبره. این ویجت با آستانهٔ نیم، عددهای بالاتر رو گروه ۱ و بقیه رو گروه ۰ حساب میکنه.
وزنها چطور عوض میشن؟
g = (label - p) * p * (1 - p)
قاعدهٔ آموزشی همین ویجت، اختلاف برچسب و خروجی نورون رو با شیب تابع sigmoid ترکیب میکنه و با آن وزنها رو جابهجا میکنه. پس این نمونه رو بهعنوان یک قانون سادهٔ بهروزرسانی بخون؛ پیادهسازیاش با زیانِ رایجِ cross-entropy برای رگرسیون لجستیک یکی نیست.
اندازهٔ قدم و تعداد دور
نرخ یادگیری اندازهٔ هر قدم تغییر وزنهاست. یک دور یعنی مدل همهٔ ۶۰ نقطه رو بهترتیب یک بار میبینه. نرخ خیلی کوچک ممکنه به دورهای بیشتری نیاز داشته باشه؛ قدم خیلی بزرگ هم میتونه از تنظیم مناسب عبور کنه. نتیجه را برای همین مدل و همین داده مقایسه کن.
دقت روی همان دادههای آموزش
درصد دقت از همان ۶۰ نقطهای حساب میشه که نورون با آنها آموزش دیده. این دادهها در صفحه ثابتاند و دو دستهٔ ساختگی را نشان میدن؛ دقت بالا روی آنها تضمین نمیکنه مدل روی نمونههای تازه هم همینقدر خوب باشه.
سؤالت رو بپرس، جوابش رو هم ببین
وقتی توی چت دربارهٔ یک مفهوم درس میخونی، دستیار هوش مصنوعی میتونه شبیهسازی مرتبط رو کنار توضیحش نشون بده. پارامترها رو تغییر میدی و با کمک توضیح بعدی، نتیجه رو بهتر میفهمی.
شروع یادگیری با چتبرای ادامه در چت، وارد مسیر شروع و ورود میشی. نتیجهٔ این آزمایش به چت منتقل نمیشه.
نمونهٔ نمایشی از آموزش در چت
اگر نرخ یادگیری رو زیاد کنم، نورون زودتر به دقت بهتر میرسه؟
نه همیشه. نرخ بزرگتر یعنی قدم بزرگتر در تغییر وزنها؛ ممکنه در بعضی تنظیمها کمک کنه و در بعضیها از مقدار مناسب رد بشه. مثلاً همین داده با ۱۰ دور و نرخ ۰٫۵ دقت ۵۰ درصد میده، در حالی که نرخ ۰٫۲ حدود ۷۲ درصد میده. این فقط نتیجهٔ مدل و نقطههای همین صفحه است.
سؤالهای رایج
هر دور آموزش یعنی چه؟
در این ویجت یک دور یعنی نورون هر ۶۰ نقطهٔ ثابت رو یک بار بهترتیب میبینه و وزنها رو بهروز میکنه. تعداد دورها میگه این گذر چند بار تکرار بشه.
آیا بیشترین نرخ یادگیری بهترینه؟
نه. نرخ بزرگ میتونه قدمها رو زیادی بزرگ کنه و کیفیت دستهبندی رو پایین بیاره؛ نرخ کوچک هم ممکنه برای بهترشدن به دورهای بیشتری نیاز داشته باشه. آزمایش کن و فقط نتیجهٔ همین داده رو تعمیم نده.
خط نقطهچین دقیقاً چه چیزی رو نشان میده؟
مرز تصمیم نورون رو نشان میده؛ روی مرز، خروجی sigmoid نزدیک نیم است. در بعضی تنظیمها خط واقعی بیرون مربع نموداره و شکل ممکنه آن رو درست نمایش نده؛ کارت دقت و تعداد اشتباهها مستقیماً از دستهبندی نقطهها حساب میشن.
دقت ۱۰۰ درصد یعنی مدل برای دادههای تازه هم درست کار میکنه؟
نه لزوماً. دقت این صفحه فقط روی همان نقطههایی حساب میشه که در آموزش استفاده شدن. برای سنجش نمونههای تازه باید دادهٔ آزمون جدا داشته باشیم؛ این ویجت چنین بخشی نداره.
آیا این آموزش دقیقاً همان زیانِ رگرسیون لجستیک رو به کار میبره؟
نه؛ قاعدهٔ وزنها در این ویجت خروجی sigmoid رو هم در بهروزرسانی وارد میکنه. برای همین در این صفحه آن رو یک قانون آموزشی ساده مینامیم و ادعا نمیکنیم همان زیان رایج cross-entropy را پیاده میکند.