From Coding to Deep Learning
Paolo Perrotta
Machine_Learning#
Deep_Learning#
Python#
software_developer#
Network#
شما تصمیم گرفتهاید وارد دنیای یادگیری ماشین شوید — شاید بهخاطر جستجوی شغل، شروع یک پروژه جدید، یا صرفاً بهاین دلیل که از خودروهای خودران خوشتان آمده. اما از کجا باید شروع کرد؟ این مسیر، حتی برای یک توسعهدهنده نرمافزار، ممکن است در ابتدا دلهرهآور بهنظر برسد. خبر خوب این است که یادگیری ماشین الزاماً سخت نیست. میتوانید آن را خطبهخط با کدنویسی یاد بگیرید؛ از برنامههای سادهی یادگیرنده گرفته تا پیادهسازی یک سیستم یادگیری عمیق واقعی. با تجزیهی مباحث دشوار و سادهسازی آنها، درک بهتری از مفاهیم پیدا خواهید کرد و با دستبهکد شدن، اعتمادبهنفس بیشتری کسب میکنید.
در این مسیر، ابهامات یادگیری ماشین را کنار میزنید — از پایه شروع کرده و تا یادگیری عمیق پیش میروید. یادگیری ماشین معمولاً بهدلیل وابستگیاش به ریاضیات و الگوریتمهایی که بسیاری از برنامهنویسان در کار روزمره خود با آنها مواجه نمیشوند، ترسناک جلوه میکند. اما این کتاب با رویکردی کاملاً عملی، شما را وادار میکند تا خودتان کدها را با زبان پایتون بنویسید، بدون استفاده از کتابخانههایی که جزئیات را پنهان میکنند. طراحی خود را مرحلهبهمرحله توسعه دهید و بهتدریج بر پیچیدگی آن بیفزایید.
در این مسیر یاد میگیرید:
با شروع از پایه و نوشتن کد، به مهارت واقعی در یادگیری ماشین دست پیدا خواهید کرد.
مثالهای این کتاب با زبان پایتون نوشته شدهاند، اما نگران نباشید اگر با پایتون آشنا نیستید — دانش لازم را در طول مسیر بهسرعت فرا خواهید گرفت. تنها چیزی که نیاز دارید، کامپیوتر و ذهنی آماده برای کدنویسی است.
این کتاب برای توسعهدهندگانی نوشته شده که میخواهند یادگیری ماشین را از پایه بیاموزند.
یادگیری ماشین حوزهای گسترده است و هیچ کتابی نمیتواند تمام آن را پوشش دهد. در اینجا، ما بر سه بخش کلیدی تمرکز خواهیم کرد که امروز بیشترین اهمیت را دارند: یادگیری نظارتشده، شبکههای عصبی و یادگیری عمیق. در طول کتاب، با این مفاهیم بهصورت کامل آشنا خواهید شد، اما در ادامه نگاهی سریع به تعاریف ابتدایی آنها خواهیم انداخت.
You've decided to tackle machine learning - because you're job hunting, embarking on a new project, or just think self-driving cars are cool. But where to start? It's easy to be intimidated, even as a software developer. The good news is that it doesn't have to be that hard. Master machine learning by writing code one line at a time, from simple learning programs all the way to a true deep learning system. Tackle the hard topics by breaking them down so they're easier to understand, and build your confidence by getting your hands dirty.
Peel away the obscurities of machine learning, starting from scratch and going all the way to deep learning. Machine learning can be intimidating, with its reliance on math and algorithms that most programmers don't encounter in their regular work. Take a hands-on approach, writing the Python code yourself, without any libraries to obscure what's really going on. Iterate on your design, and add layers of complexity as you go.
Build an image recognition application from scratch with supervised learning. Predict the future with linear regression. Dive into gradient descent, a fundamental algorithm that drives most of machine learning. Create perceptrons to classify data. Build neural networks to tackle more complex and sophisticated data sets. Train and refine those networks with backpropagation and batching. Layer the neural networks, eliminate overfitting, and add convolution to transform your neural network into a true deep learning system.
Start from the beginning and code your way to machine learning mastery.
What You Need:
The examples in this book are written in Python, but don't worry if you don't know this language: you'll pick up all the Python you need very quickly. Apart from that, you'll only need your computer, and your code-adept brain.
Table of Contents
Part I—From Zero to Image Recognition
1. How Machine Learning Works
2. Your First Learning Program
3. Walking the Gradient
4. Hyperspace!
5. A Discerning Machine
6. Getting Real
7. The Final Challenge
8. The Perceptron
Part II—Neural Networks
9. Designing the Network
10. Building the Network
11. Training the Network
12. How Classifiers Work
13. Batchin’ Up
14. The Zen of Testing
15. Let’s Do Development
Part III—Deep Learning
16. A Deeper Kind of Network
17. Defeating Overfitting
18. Taming Deep Networks
19. Beyond Vanilla Networks
20. Into the Deep
A1. Just Enough Python
A2. The Words of Machine Learning
About This Book
This is a book for developers who want to learn machine learning from scratch.
Machine learning is a broad field, and no book can cover it all. We’ll focus on the three facets of machine learning that are most important today: supervised learning, neural networks, and deep learning. We’ll look into those terms as we go through the book, but here are a few quick definitions to get you started.
Supervised learning is a specific type of machine learning. Machine learning comes in a few different flavors, but supervised learning is the most popular one these days.
Part I of this book, From Zero to Image Recognition, is a hands-on supervised learning tutorial. Within a couple of chapters, we’ll write a minimal learning program. Then we’ll evolve this program step by step, progressively turning it into a machine learning system called a perceptron. Our perceptron will be a bona fide computer vision program, powerful enough to recognize handwritten characters.
We’ll craft it all by ourselves, without using machine learning libraries. You’ll understand each single line of its code.
There are many ways to implement a supervised learning system. The most popular of those is the neural network— a brilliant algorithm that was loosely inspired by the connections of neurons in our own brains. Part II of this book is dedicated to neural networks. We’ll grow the program from Part I into a full-fledged neural network. We’ll have to overcome a few challenges along the way, but the payoff will be worth it: the final neural network will be way more powerful than the fledgling program we’ll start off with. Once again, we’ll write the code ourselves, line by line. Its inner workings will be open for you to play with.
Neural networks got a big boost in recent years, when researchers came up with breakthrough techniques to design and use them. This souped-up technology is vastly more powerful than the simple neural networks of old—so much so that it got its own name: deep learning.
That’s also the title of Part III of this book. In it, we’ll rewrite our neural network using a modern machine learning library. The resulting code will be our starting point to understand what deep learning is about. Finally, as we wrap up the book, we’ll take a look at a few advanced deep learning techniques, paving the way for your future explorations.
In truth, things aren’t quite as clean-cut as our picture implies. For example, neural networks can be used in other fields of machine learning, not just in supervised learning. However, the diagram shown below is a good starting point to get a sense of the topics in this book, and how they fit together.
Paolo Perrotta is a traveling software mentor. He wrote Metaprogramming Ruby for the Pragmatic Programmers, and produced the popular "How Git Works" training for Pluralsight. He speaks a lot - at conferences and, according to his friends and family, pretty much anywhere else.