[PYTHON] A story about a student who does not know the machine learning machine learned machine learning (deep learning) for half a year

Introduction

I would like to introduce the books I used for more than half a year and how to study, which I had no knowledge of machine learning as of April 2020. I hope it will be helpful for beginners in machine learning. The goal of the article is to understand what to do for those who want to focus on application over theory.

table of contents

1. Self-introduction 2. Study flow 3. Introduction of books 4. Summary

1. Self-introduction

April 2020 ・ Faculty of Information Systems 3rd year ・ Since it is a place close to theory, I did some math in the lecture. Mathematics necessary for machine learning, such as linearity, calculus, and statistics, is in a state of being lightly exposed. ・ Python is almost self-taught and can be written for the time being It has nothing to do with machine learning libraries such as numpy and scikit-learn. ・ I can't speak English

It starts from this state. My motivation for machine learning is "I want to play with image generation". I chose the book with the idea of ​​how to quickly perform practical tasks. (G test is a bonus)

2. Study flow

The general flow was as follows.

The essence of machine learning ↓ Deep learning with Python and Keras ↓ Deep learning G test that you can understand clearly

First, I learned the basics of machine learning and how to handle numpy with the essence of machine learning. As I will introduce later, this book also explains the mathematics necessary for machine learning, so it is recommended that beginners in this field can buy it for the time being.

Next, I used Keras to actually cover the basics and applications of deep learning. The second book is also a good book, but I felt that it should be inserted in between because it is a little difficult for beginners of deep learning (≠ beginners of machine learning).

G-test was selected as a subject for organizing the knowledge gained by writing code with reference to articles such as qiita. It is often useful to study because you will be asked a wider range of knowledge than you can imagine (law, national policy, etc.). The G-test itself is relatively easy to pass (three books actually mentioned + one lap of the mock exam), so if you intend to specialize in this field, you can take it for the time being. If you study to pass this test, you will naturally gain important knowledge, so it may be a good idea to touch the G test book first.

After I was able to write some practical code by deep learning with Python and Keras (after progressing to about 6 chapters), I found an article that seems to be interesting on qiita, and almost completed copy/with some arrangements I wrote code to do a simple task. I think one of the things to keep in mind when programming is to maintain motivation. The example in the book is not interesting, so even in the example of image classification, if you create your own data set and play with it, you will be able to proceed with learning with high motivation.

Personally, after suppressing the whole of machine learning with the essence of machine learning, I think that you can freely choose a book according to what you want to do. If you want to focus on theory, you should read a book that implements neural networks, and if you want to use deep learning, you should read a manual of frameworks such as keras, tensorflow, and pytorch. At that time, if you feel strict, you may want to insert another book in between.

3. Introduction of books

The essence of machine learning

First of all, I highly recommend this book. Especially beginners (inexperienced in python, not confident in linear algebra and calculus) should read this.

Python is explained carefully from the installation, and mathematics is explained carefully from the contents of high 2 calculus and vector. After solidifying the basics of python and mathematics, I will explain numerical calculation and graph drawing using python using actual code, and will handle numpy and matplotlib firmly.

In the part of mathematical optimization / machine learning algorithms, you can get an essential understanding because the algorithms are explained using mathematical formulas instead of introducing only the code. It's easy to read because it doesn't feel as rigid as a math treatise.

If you are confident in python or math, you can skip the first half. If you do your best, you can read this book in less than two weeks.

I think that you can learn sample code and mathematical formulas efficiently not only by following them but also by actually moving your hands.

Deep learning with Python and Keras

A book by François Chollet, author of the deep learning framework Keras. I think the 2017 book is a bit old as a book in the field of machine learning that is evolving year by year, but it's probably not a better introduction to practice. Please note that TensorFlow 1.3 is used as the back end of Keras, so if you have the latest 2.x installed, you have to create a separate environment. (I don't know if it's old)

The goal of this book is to be able to write code that uses Keras to perform practical tasks. Therefore, the explanation of the theoretical aspect of deep learning is thin. If you want to know about that, I recommend reading the tensorflow manual and deep learning starting from 0. I just wanted to play with machine learning, so I read this book, which focuses on implementation.

After giving an overview of deep learning, we will build a deep learning model that performs basic tasks such as image classification and time series analysis, with a brief explanation of neural networks and machine learning. In the second half, we will deal with the construction of more complicated models and image generation models as applications.

First of all, I would like to mention the many techniques introduced as the reason why I recommend this book. There are numerous ideas to improve the accuracy of the prediction. It's easy for anyone to do, so I think it's useful in practice. Another reason I recommend it is that it contains the opinions of the Keras author. At the beginning of this book is a discussion of why AI is, and at the end is a discussion of the possibilities and limitations of deep learning. It is ideal for identifying the essence of AI, which is often featured on TV so that you can do anything. I've read several new books that have similar discussions, and I feel that the opinions in this book are the most relevant.

The content of this book is published on the author's own github, so those who can speak English can easily look at the content there. The Keras documentation also contains the author's opinion at the end of this book.

Deep learning G test that you can understand clearly

I bought it for studying the G test. Get an overview of the AI ​​field. Since it is for G-test, there are few mathematical expressions. I think it is sufficient as a supplement to the words and algorithms that did not appear in the above two books. I chose this because it was published in March 2020 and was newer than the official text. I think it was the correct answer in terms of getting the latest information.

Other books you want to comment on

Deep Learning from scratch (series)

As the title suggests, we will implement a neural network. The commentary is polite, but I retired because it didn't suit my purpose. As a level, I think you should read it after the essence of machine learning.

First deep learning

The theory development is easy to understand, but I felt something was wrong with the notation of mathematical formulas. There are many unique notations, so I think it's a good idea to read this book after thoroughly studying mathematics in another book.

Personal articles such as qiita

There are many interesting articles that will help you stay motivated. Most of the articles on practical topics are written in keras or pytorch, so once you have some knowledge, it is a good idea to actually move your hands when you have time.

Papers such as arXiv

It's a little far from beginners, but it's also a good idea to read cutting-edge treatises. You can see the latest trends, and if you publish the code on github, you can try it out. Of course, it's written in English, so people like me need to be careful ...

4. Summary

My favorite introductory book is the essence of machine learning, but I think there are tons of python + machine learning books, so it's a good idea to go to a large bookstore and find one that suits you. When you find a book, move your hand and write the code. I think it's good to refer to articles on the Internet after gaining some knowledge, but I think that beginners should still systematically study with books. Thank you for reading this far.

Recommended Posts

A story about a student who does not know the machine learning machine learned machine learning (deep learning) for half a year
A story about a 40-year-old engineer manager passing "Deep Learning for ENGINEER"
Machine learning A story about people who are not familiar with GBDT using GBDT in Python
A story about machine learning with Kyasuket
A story about simple machine learning using TensorFlow
A story about data analysis by machine learning
A story about predicting exchange rates with Deep Learning
A story stuck with the installation of the machine learning library JAX
How about Anaconda for building a machine learning environment in Python?
A story about how to study English by a stupid student in grade Biri who raised his TOEIC score from 300 to 840 in a year and a half.
A story about trying to reproduce Katsuwo Isono, who does not react to inconvenience, by natural language processing.
A super beginner who does not know the basics of Python tried to graph the stock price of GAFA
[AtCoder for beginners] A story about the amount of calculation that you want to know very roughly
100 language processing knocks for those who do not understand the meaning of problem sentences Chapter 8 Machine learning
About data expansion processing for deep learning
Creating a development environment for machine learning
Creating a position estimation model for the Werewolf Intelligence Tournament using machine learning
Half a year when the humanities of Gorigori learned AI almost by themselves
Deep Learning! The story of the data itself that is read when it does not follow after handwritten number recognition