کتاب Machine Learning for Hackers: Case Studies and Algorithms to Get You Started (یادگیری ماشین برای هکرها: مطالعات موردی و الگوریتمها برای شروع کار) کتابی است که به طور خاص برای برنامهنویسان و توسعهدهندگان با تجربه طراحی شده است که میخواهند با اصول یادگیری ماشین بدون غرق شدن در جزئیات تئوری و ریاضی پیچیده آشنا شوند.
کتاب Machine Learning for Hackers با ارائه مطالعات موردی عملی و الگوریتمهای کاربردی، به خوانندگان کمک میکند تا به سرعت درک عمیقی از نحوه استفاده از یادگیری ماشین در پروژههای واقعی خود به دست آورند.
در ادامه مقدمهای از کتاب Machine Learning for Hackers را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Machine Learning for Hackers:
یادگیری ماشین برای هکرها
برای توضیح دیدگاهی که کتاب Machine Learning for Hackers از آن نوشته شده است، تعریف اصطلاحات یادگیری ماشین و هکرها مفید خواهد بود.
یادگیری ماشین چیست؟
در بالاترین سطح انتزاع، میتوانیم یادگیری ماشین را مجموعهای از ابزارها و روشهایی در نظر بگیریم که تلاش میکنند الگوها را استنباط کرده و بینش را از سوابق دنیای قابل مشاهده استخراج کنند. برای مثال، اگر سعی میکنیم به کامپیوتر یاد بدهیم که کدهای پستی نوشته شده روی پاکتهای نامه را تشخیص دهد، دادههای ما ممکن است شامل عکسهای پاکتها به همراه سابقه کد پستی باشد که هر پاکت به آن آدرس شده است.
به عبارت دیگر، در یک زمینه خاص میتوانیم سابقه اقدامات سوژههای خود را ثبت کنیم، از این سابقه یاد بگیریم و سپس مدلی از این فعالیتها ایجاد کنیم که درک ما از این زمینه را در آینده شکل دهد. در عمل، این امر مستلزم داده است، و در برنامههای معاصر این اغلب به معنای دادههای زیاد (شاید چندین ترابایت) است. اکثر تکنیکهای یادگیری ماشین، در دسترس بودن چنین دادههایی را بدیهی میدانند، که این به معنای فرصتهای جدیدی برای کاربرد آنها با توجه به کمیت دادههایی است که به عنوان محصول اجرای شرکتهای مدرن تولید میشوند.
هکر کیست؟
به دور از تصویرهای کلیشهای نوجوانان شرور یا سایبر پانکهای گیبسونی که در فرهنگ عامه به تصویر کشیده میشوند، ما معتقدیم که هکر کسی است که دوست دارد مشکلات را حل کند و با فناوریهای جدید آزمایش کند.
اگر تا به حال با جدیدترین کتاب O’Reilly در مورد یک زبان کامپیوتر جدید نشسته باشید و کد را تا زمانی که خیلی از “Hello, World” گذشته باشید، نوشته باشید، پس شما یک هکر هستید. یا اگر یک وسیله جدید را تا زمانی که معماری کل دستگاه را نفهمیدید، از هم جدا کرده باشید، احتمالاً منظور ما شما نیز هستید. این تلاشها اغلب فقط به این دلیل انجام میشوند که فرآیند را طی کرده و در مورد چگونگی و چرایی یک فناوری ناشناخته، دانش کسب کرده باشید.
در کنار کنجکاوی ذاتی در مورد چگونگی عملکرد چیزها و تمایل به ساختن، یک هکر کامپیوتر (برخلاف هکر ماشین، هکر زندگی، هکر غذا و غیره) تجربه طراحی و توسعه نرمافزار دارد. این فردی است که قبلاً برنامههایی را نوشته است، احتمالاً به زبانهای مختلف.
برای یک هکر، یونیکس یک کلمه چهار حرفی نیست، و پیمایش خط فرمان و عملیات bash ممکن است به اندازه کار با رابطهای گرافیکی کاربر (GUI) طبیعی باشد. استفاده از عبارات منظم و ابزارهایی مانند sed، awk و grep اولین خط دفاعی یک هکر هنگام کار با متن است. در فصلهای موجود در کتاب Machine Learning for Hackers، ما سطح نسبتاً بالایی از این نوع دانش را فرض خواهیم کرد.
نحوه سازماندهی کتاب Machine Learning for Hackers
یادگیری ماشین مفاهیم و تکنیکها را از بسیاری از زمینههای سنتی مختلف، مانند ریاضیات، آمار و علوم کامپیوتر، ترکیب میکند. به همین ترتیب، راههای زیادی برای یادگیری این رشته وجود دارد. با توجه به مبانی نظری آن در ریاضیات و آمار، تازه واردان بهتر است تا حدی از تسلط بر مشخصات رسمی تکنیکهای اولیه یادگیری ماشین به دست آورند.
کتابهای عالی بسیاری وجود دارند که بر اصول اولیه تمرکز دارند، کار کلاسیک، کتاب عناصر یادگیری آماری هاستی، تیبشیرانی و فریدمن ([HTF09]؛ منابع کامل را میتوان در بخش آثار ذکر شده یافت) است. اما بخش مهم دیگری از شعار هکرها یادگیری با انجام دادن است. بسیاری از هکرها ممکن است در مورد تفکر در مورد مسائل از نظر فرآیندی که توسط آن یک راهحل به دست میآید، راحتتر باشند، تا مبنای نظری که راهحل از آن استخراج میشود.
از این دیدگاه، یک رویکرد جایگزین برای آموزش یادگیری ماشین، استفاده از مثالهای به سبک “کتاب آشپزی” خواهد بود. برای درک چگونگی عملکرد یک سیستم توصیهگر، برای مثال، میتوانیم دادههای آموزشی نمونه و نسخهای از مدل را ارائه دهیم و نشان دهیم که چگونه مدل از دادههای آموزشی استفاده میکند.
متون مفید زیادی از این نوع نیز وجود دارد، و کتاب هوش جمعی برنامهنویسی سگاران یک نمونه اخیر است [Seg07]. چنین بحثی مطمئناً به چگونگی روش یادگیری یک هکر میپردازد، اما شاید کمتر به چرایی آن. در کنار درک مکانیک یک روش، ممکن است بخواهیم یاد بگیریم که چرا در یک زمینه خاص استفاده میشود یا برای پرداختن به یک مشکل خاص استفاده میشود.
بنابراین، برای ارائه یک مرجع کاملتر در مورد یادگیری ماشین برای هکرها، باید بین ارائه یک بررسی عمیق از مبانی نظری این رشته و یک اکتشاف گسترده از کاربردهای آن، مصالحه کنیم. برای انجام این کار، تصمیم گرفتهایم که یادگیری ماشین را از طریق مطالعات موردی انتخاب شده آموزش دهیم.
ما معتقدیم بهترین راه برای یادگیری این است که ابتدا یک مشکل در ذهن داشته باشیم، سپس بر یادگیری ابزارهای مورد استفاده برای حل آن مشکل تمرکز کنیم. این به طور مؤثر مکانیزمی است که مطالعات موردی از طریق آن کار میکنند. تفاوت در این است که به جای داشتن مشکلی که ممکن است هیچ راهحل شناخته شدهای نداشته باشد، میتوانیم بر روی مشکلات کاملاً درک شده و مطالعه شده در یادگیری ماشین تمرکز کنیم و نمونههای خاصی از مواردی را ارائه دهیم که در آن برخی از راهحلها عالی عمل کردند در حالی که برخی دیگر به طرز چشمگیری شکست خوردند.
به همین دلیل، هر فصل از کتاب Machine Learning for Hackers یک مطالعه موردی خودگردان است که بر روی یک مشکل خاص در یادگیری ماشین تمرکز دارد. سازماندهی موارد اولیه از طبقه بندی به رگرسیون (که در فصل 1 کتاب Machine Learning for Hackers بیشتر مورد بحث قرار گرفته) حرکت میکند.
سپس موضوعاتی مانند خوشهبندی، کاهش ابعاد و بهینهسازی را بررسی میکنیم. مهم است که توجه داشته باشید که همه مشکلات به طور مرتب در یکی از دستهبندیهای طبقهبندی یا رگرسیون قرار نمیگیرند، و برخی از مطالعات موردی بررسی شده در کتاب Machine Learning for Hackers شامل جنبههایی از هر دو خواهد بود (گاهی اوقات به صراحت، اما به روشهای ظریف تر که بررسی خواهیم کرد). در زیر توضیحات مختصری از همه مطالعات موردی بررسی شده در کتاب Machine Learning for Hackers به ترتیب ظاهر شدن آنها آمده است:
طبقه بندی متن: تشخیص هرزنامه
در این فصل از کتاب Machine Learning for Hackers ایده طبقهبندی دودویی را معرفی میکنیم که از طریق استفاده از دادههای متنی ایمیل ایجاد انگیزه میشود. در اینجا به مشکل کلاسیک در یادگیری ماشین در طبقهبندی برخی از ورودیها به عنوان یکی از دو نوع میپردازیم که در این مورد یا هرزنامه (ایمیل ناخواسته) یا هرزنامه (ایمیل ناخواسته) است.
رتبهبندی موارد: صندوق ورودی اولویتدار
در فصل 2 کتاب Machine Learning for Hackers، با استفاده از دادههای متنی ایمیل مشابه مطالعه موردی قبلی، در اینجا فراتر از یک طبقه بندی دودویی به مجموعهای گسسته از انواع میرویم. به طور خاص، باید ویژگیهای مناسبی را که از ایمیل استخراج میشوند، شناسایی کنیم که میتوانند به بهترین شکل رتبه “اولویت” آن را در بین همه ایمیلها مشخص کنند.
مدلهای رگرسیون: پیشبینی بازدید صفحه
در فصل 5 کتاب Machine Learning for Hackers دومین ابزار اصلی در یادگیری ماشین، رگرسیون خطی را معرفی میکنیم. در اینجا دادههایی را بررسی میکنیم که رابطه آنها تقریباً یک خط مستقیم را تقریب میزند. در این مطالعه موردی، ما علاقهمند به پیشبینی تعداد بازدید صفحه برای 1000 وبسایت برتر در اینترنت تا سال 2011 هستیم.
منظم سازی: رگرسیون متن
گاهی اوقات روابط در دادههای ما به خوبی توسط یک خط مستقیم توصیف نمیشوند. برای توصیف رابطه، ممکن است نیاز به برازش یک تابع متفاوت داشته باشیم. با این حال، باید مراقب باشیم که بیش از حد برازش نکنیم. در اینجا مفهوم منظمسازی را برای غلبه بر این مشکل معرفی میکنیم و آن را از طریق یک مطالعه موردی، با تمرکز بر درک رابطه بین کلمات در متن از توضیحات کتاب O’Reilly، ایجاد انگیزه میکنیم.
بهینهسازی: رمز شکنی
با حرکت فراتر از مدلهای رگرسیون، تقریباً هر الگوریتم در یادگیری ماشین را میتوان به عنوان یک مسئله بهینهسازی در نظر گرفت که در آن سعی میکنیم مقداری از خطای پیش بینی را به حداقل برسانیم. در اینجا الگوریتمهای کلاسیک را برای انجام این بهینهسازی معرفی میکنیم و سعی میکنیم یک رمز ساده حروف را با این تکنیکها بشکنیم.
یادگیری بدون نظارت: ایجاد شاخص بازار سهام
تا این نقطه فقط در مورد تکنیکهای یادگیری با نظارت بحث کردهایم. در اینجا همتای روش شناختی آن را معرفی میکنیم: یادگیری بدون نظارت. تفاوت مهم این است که در یادگیری با نظارت، میخواهیم از ساختار دادههای خود برای پیشبینی استفاده کنیم، در حالی که در یادگیری بدون نظارت، میخواهیم ساختار دادههای خود را به خاطر ساختار کشف کنیم. در این مورد از دادههای بازار سهام برای ایجاد شاخصی استفاده میکنیم که توصیف میکند که بازار به طور کلی چقدر خوب عمل میکند.
شباهت فضایی: خوشه بندی سناتورهای ایالات متحده بر اساس سوابق رأی دهی
در فصل 9 کتاب Machine Learning for Hackers مفهوم فواصل فضایی بین مشاهدات را معرفی میکنیم. برای انجام این کار، معیارهای فاصله را تعریف میکنیم و روشهایی را برای خوشهبندی مشاهدات بر اساس فواصل فضایی آنها شرح میدهیم. ما از دادههای رأیگیری سناتور ایالات متحده استفاده میکنیم تا آن دسته از قانونگذاران را بر اساس آرای آنها خوشهبندی کنیم.
سیستم توصیه: پیشنهاد بستههای R به کاربران
برای ادامه بحث در مورد شباهتهای فضایی، در مورد چگونگی ساخت یک سیستم توصیه بر اساس نزدیکی مشاهدات در فضا بحث میکنیم. در اینجا الگوریتم k نزدیکترین همسایه را معرفی میکنیم و از آن برای پیشنهاد بستههای R به برنامه نویسان بر اساس بستههای نصب شده فعلی آنها استفاده میکنیم.
تحلیل شبکه اجتماعی: چه کسی را در توییتر دنبال کنیم
در فصل 11 کتاب Machine Learning for Hackers، تلاش میکنیم بسیاری از مفاهیم مورد بحث قبلی را ترکیب کنیم، و همچنین چند مفهوم جدید را برای طراحی و ساخت یک سیستم توصیه “چه کسی را دنبال کنیم” از دادههای توییتر معرفی کنیم. در این مورد، ما سیستمی را برای دانلود دادههای شبکه توییتر میسازیم، جوامع را در ساختار کشف میکنیم و با استفاده از تکنیکهای اولیه تحلیل شبکه اجتماعی، کاربران جدید را برای دنبال کردن توصیه میکنیم.
مقایسه مدل: یافتن بهترین الگوریتم برای مشکل شما
در فصل پایانی کتاب Machine Learning for Hackers، در مورد تکنیکهایی برای انتخاب اینکه از کدام الگوریتم یادگیری ماشین برای حل مشکل خود استفاده کنید، بحث میکنیم. ما الگوریتم نهایی خود، ماشین بردار پشتیبان را معرفی میکنیم و عملکرد آن را در دادههای هرزنامه از فصل 3 کتاب Machine Learning for Hackers با عملکرد سایر الگوریتمهایی که در اوایل کتاب معرفی میکنیم، مقایسه میکنیم.
ابزار اصلی که برای بررسی این مطالعات موردی استفاده میکنیم، زبان برنامهنویسی آماری R (http://www.r-project.org/) است. R به ویژه برای مطالعات موردی یادگیری ماشین مناسب است زیرا یک زبان اسکریپتنویسی سطح بالا و کاربردی است که برای تجزیه و تحلیل دادهها طراحی شده است.
بسیاری از داربستهای الگوریتمی زیربنایی مورد نیاز از قبل در زبان ساخته شدهاند یا به عنوان یکی از هزاران بسته R موجود در شبکه جامع بایگانی R (CRAN) پیاده سازی شدهاند. این به ما این امکان را میدهد که به چگونگی و چرایی این مشکلات تمرکز کنیم، به جای اینکه کد بنیادی را برای هر مورد بررسی و بازنویسی کنیم.
سرفصلهای کتاب Machine Learning for Hackers:
- Table of Contents
- Preface
- Chapter 1. Using R
- Chapter 2. Data Exploration
- Chapter 3. Classification: Spam Filtering
- Chapter 4. Ranking: Priority Inbox
- Chapter 5. Regression: Predicting Page Views
- Chapter 6. Regularization: Text Regression
- Chapter 7. Optimization: Breaking Codes
- Chapter 8. PCA: Building a Market Index
- Chapter 9. MDS: Visually Exploring US Senator Similarity
- Chapter 10. kNN: Recommendation Systems
- Chapter 11. Analyzing Social Graphs
- Chapter 12. Model Comparison
- Works Cited
- Index
جهت دانلود کتاب Machine Learning for Hackers میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.