Facebook Pixel
Searching...
فارسی
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Hands-On Machine Learning with Scikit-Learn and TensorFlow

Hands-On Machine Learning with Scikit-Learn and TensorFlow

Concepts, Tools, and Techniques to Build Intelligent Systems
توسط Aurélien Géron 2017 574 صفحات
4.56
2k+ امتیازها
گوش دادن

نکات کلیدی

1. شبکه‌های عصبی بازگشتی (RNNs) پردازش و پیش‌بینی توالی‌ها را ممکن می‌سازند

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

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

  • پردازش زبان طبیعی (مثلاً ترجمه، تحلیل احساسات)
  • تحلیل سری‌های زمانی (مثلاً قیمت سهام، پیش‌بینی آب و هوا)
  • تشخیص گفتار
  • پردازش ویدئو

RNNها می‌توانند ورودی‌ها و خروجی‌های با طول متغیر را مدیریت کنند. این انعطاف‌پذیری به آن‌ها اجازه می‌دهد با توالی‌هایی با طول دلخواه کار کنند، که آن‌ها را برای وظایفی که اندازه‌ی ورودی یا خروجی ممکن است متغیر باشد، مانند ترجمه‌ی ماشینی یا تبدیل گفتار به متن، ایده‌آل می‌سازد.

2. RNNها از سلول‌های حافظه برای حفظ وضعیت در طول گام‌های زمانی استفاده می‌کنند

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

سلول‌های حافظه هسته‌ی RNNها هستند. این سلول‌ها به شبکه اجازه می‌دهند اطلاعات را در طول زمان حفظ کند و به آن امکان می‌دهند توالی‌ها را به طور مؤثر پردازش کند. وضعیت یک سلول در هر گام زمانی تابعی از:

  • وضعیت قبلی آن
  • ورودی فعلی

انواع سلول‌های حافظه:

  • سلول‌های RNN پایه: ساده اما مستعد مشکلات ناپدید شدن/انفجار گرادیان
  • سلول‌های LSTM (حافظه‌ی بلندمدت کوتاه): پیچیده‌تر، بهتر در گرفتن وابستگی‌های بلندمدت
  • سلول‌های GRU (واحد بازگشتی دروازه‌دار): نسخه‌ی ساده‌شده‌ی LSTM، اغلب با عملکرد مشابه

انتخاب نوع سلول به وظیفه‌ی خاص و محدودیت‌های محاسباتی پروژه بستگی دارد.

3. باز کردن RNNها در طول زمان امکان آموزش کارآمد را فراهم می‌کند

باز کردن شبکه در طول زمان، همان‌طور که در شکل 14-1 (راست) نشان داده شده است.

باز کردن، تجسم و محاسبه‌ی RNN را ساده می‌کند. وقتی یک RNN باز می‌شود، شبیه یک شبکه عصبی پیش‌خور به نظر می‌رسد، با هر گام زمانی به عنوان یک لایه نمایش داده می‌شود. این نمایش باز شده:

  • درک جریان اطلاعات در شبکه را آسان‌تر می‌کند
  • امکان محاسبه‌ی کارآمد با استفاده از عملیات ماتریسی را فراهم می‌کند
  • کاربرد پس‌انتشار برای آموزش را تسهیل می‌کند

دو رویکرد اصلی برای باز کردن:

  1. باز کردن استاتیک: ایجاد یک شبکه باز شده با طول ثابت
  2. باز کردن دینامیک: استفاده از تابع dynamic_rnn() در TensorFlow برای مدیریت توالی‌های با طول متغیر به طور کارآمدتر

باز کردن دینامیک به دلیل انعطاف‌پذیری و کارایی حافظه‌اش، به ویژه هنگام کار با توالی‌های بلند یا با طول متغیر، معمولاً ترجیح داده می‌شود.

4. مدیریت توالی‌های با طول متغیر نیاز به تکنیک‌های خاص دارد

اگر توالی‌های ورودی طول‌های متغیر داشته باشند (مثلاً مانند جملات) چه می‌شود؟

پدینگ و ماسکینگ. برای مدیریت توالی‌های ورودی با طول متغیر:

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

مشخص کردن طول توالی. هنگام استفاده از تابع dynamic_rnn() در TensorFlow:

  • یک پارامتر sequence_length ارائه دهید تا طول واقعی هر توالی را مشخص کنید
  • این به RNN اجازه می‌دهد فقط بخش‌های مربوط به هر توالی را پردازش کند

مدیریت خروجی. برای توالی‌های خروجی با طول متغیر:

  • از یک توکن پایان توالی (EOS) برای علامت‌گذاری پایان توالی تولید شده استفاده کنید
  • هر خروجی پس از توکن EOS را نادیده بگیرید

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

5. پس‌انتشار در طول زمان (BPTT) برای آموزش RNNها استفاده می‌شود

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

BPTT پس‌انتشار را به توالی‌ها گسترش می‌دهد. این فرآیند شامل:

  1. گذر رو به جلو: محاسبه‌ی خروجی‌ها برای همه‌ی گام‌های زمانی
  2. محاسبه‌ی خطا با استفاده از یک تابع هزینه
  3. گذر به عقب: انتشار گرادیان‌ها به عقب در طول زمان
  4. به‌روزرسانی پارامترهای مدل با استفاده از گرادیان‌های محاسبه‌شده

چالش‌ها با BPTT:

  • ناپدید شدن گرادیان‌ها: گرادیان‌ها می‌توانند برای توالی‌های بلند بسیار کوچک شوند، که یادگیری وابستگی‌های بلندمدت را دشوار می‌کند
  • انفجار گرادیان‌ها: گرادیان‌ها می‌توانند به صورت نمایی رشد کنند، که منجر به آموزش ناپایدار می‌شود

راه‌حل‌ها:

  • برش گرادیان: محدود کردن بزرگی گرادیان‌ها برای جلوگیری از انفجار
  • استفاده از انواع سلول‌های پیشرفته‌تر مانند LSTM یا GRU
  • BPTT کوتاه‌شده: محدود کردن تعداد گام‌های زمانی برای انتشار گرادیان

درک و رفع این چالش‌ها برای آموزش مؤثر RNNها در وظایف دنیای واقعی حیاتی است.

6. RNNها می‌توانند به وظایف مختلف توالی مانند طبقه‌بندی و پیش‌بینی سری‌های زمانی اعمال شوند

بیایید یک RNN را برای طبقه‌بندی تصاویر MNIST آموزش دهیم.

طبقه‌بندی توالی. RNNها می‌توانند برای طبقه‌بندی کل توالی‌ها استفاده شوند:

  • مثال: تحلیل احساسات متن
  • فرآیند: توالی را از طریق RNN تغذیه کنید و از وضعیت نهایی برای طبقه‌بندی استفاده کنید

پیش‌بینی سری‌های زمانی. RNNها در پیش‌بینی مقادیر آینده در یک سری زمانی برتری دارند:

  • مثال: پیش‌بینی قیمت سهام، پیش‌بینی آب و هوا
  • فرآیند: RNN را آموزش دهید تا مقدار(های) بعدی را با توجه به یک توالی از مقادیر گذشته پیش‌بینی کند

طبقه‌بندی تصویر با RNNها. اگرچه بهینه نیست، RNNها می‌توانند برای طبقه‌بندی تصویر استفاده شوند:

  • فرآیند: هر تصویر را به عنوان یک توالی از ردیف‌ها یا ستون‌ها در نظر بگیرید
  • عملکرد: به طور کلی توسط شبکه‌های عصبی کانولوشنی (CNNها) برای وظایف تصویری بهتر عمل می‌کنند

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

7. معماری‌های پیشرفته RNN محدودیت‌های RNNهای پایه را برطرف می‌کنند

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

سلول‌های LSTM و GRU. این انواع سلول‌های پیشرفته مشکل ناپدید شدن گرادیان را برطرف می‌کنند:

  • LSTM: از دروازه‌ها برای کنترل جریان اطلاعات و حفظ وابستگی‌های بلندمدت استفاده می‌کند
  • GRU: نسخه‌ی ساده‌شده‌ی LSTM با پارامترهای کمتر

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

  • زمینه را از هر دو گام زمانی گذشته و آینده می‌گیرند
  • برای وظایفی مانند ترجمه‌ی ماشینی و تشخیص گفتار مفید هستند

معماری‌های رمزگذار-رمزگشا. شامل دو RNN هستند:

  • رمزگذار: توالی ورودی را به یک نمایش با اندازه‌ی ثابت پردازش می‌کند
  • رمزگشا: توالی خروجی را از نمایش رمزگذاری‌شده تولید می‌کند
  • کاربردها: ترجمه‌ی ماشینی، خلاصه‌سازی متن

مکانیسم‌های توجه. به مدل اجازه می‌دهند بر روی بخش‌های مربوط به ورودی تمرکز کند:

  • عملکرد را بر روی توالی‌های بلند بهبود می‌بخشند
  • امکان مدیریت بهتر وابستگی‌های بلندمدت را فراهم می‌کنند

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

آخرین به‌روزرسانی::

نقد و بررسی

4.56 از 5
میانگین از 2k+ امتیازات از Goodreads و Amazon.

کتاب یادگیری ماشین عملی با Scikit-Learn و TensorFlow به عنوان یک مقدمه عالی برای یادگیری ماشین به طور گسترده‌ای تحسین شده است. خوانندگان از پوشش جامع، مثال‌های عملی و رویکرد متعادل آن به نظریه و کاربرد قدردانی می‌کنند. این کتاب به خاطر توضیحات واضح، تمرین‌های عملی و استفاده از چارچوب‌های محبوب مورد ستایش قرار گرفته است. بسیاری آن را بهترین منبع برای مبتدیان و یادگیرندگان متوسط در زمینه یادگیری ماشین می‌دانند. در حالی که برخی بخش‌های یادگیری عمیق را چالش‌برانگیز می‌یابند، اکثر افراد توافق دارند که این کتاب یک مرجع ارزشمند برای هر کسی است که به یادگیری ماشین علاقه‌مند است.

درباره نویسنده

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

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Unlock unlimited listening
Your first week's on us!
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Dec 1,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance