Wu Enda machine learning series content learning Directory                                 →                            \rightarrow                 Wu Enda machine learning series summary .



   Neural network was originally a biological concept , It generally refers to neurons in the brain 、 contact 、 A network of cells, etc , Used to generate consciousness , Help biology think and act , Later artificial intelligence was inspired by neural networks , Developed artificial neural networks .
   Artificial neural network (Artificial Neural Networks, Shorthand for ANNs) Also referred to as neural network (NNs) Or connection model (Connection Model), It is an algorithmic mathematical model that imitates the behavior characteristics of animal neural network for distributed parallel information processing . This network depends on the complexity of the system , By adjusting the interconnecting relationships between a large number of internal nodes , In order to achieve the purpose of processing information .
   Whether it's machine learning or deep learning , We're all exposed to the word neural network , Artificial intelligence 、 machine learning 、 Deep learning 、 The relationship between the concepts of neural network is shown in the figure 1 Shown .

 Insert picture description here

chart 1 Artificial intelligence 、 machine learning 、 Deep learning 、 The relationship between neural networks


1. Nonlinear hypothesis

   We learned about linear regression and Logistic There's a drawback to regression : When there are too many features , The calculated load will be very large . chart 2 It's an example of nonlinear classification .

 Insert picture description here

chart 2 Nonlinear classification


   When we use                                     x                         1                                 x_{1}              x1、                                     x                         2                                 x_{2}              x2 When forecasting with multiple terms of , We can apply it very well . But when we assume that we have a lot of features , For example, there are 100 A variable , We want to use this 100 A feature to construct a nonlinear polynomial model , The result will be a very striking combination of features . Even if we only use a combination of pairwise features                            (                             x                         1                                     x                         2                            +                             x                         1                                     x                         3                            +                    .                    .                    .                    +                             x                         2                                     x                         3                            +                             x                         2                                     x                         4                            +                    .                    .                    .                    +                    +                             x                         99                                     x                         100                            )                         (x_{1}x_{2}+x_{1}x_{3}+...+x_{2}x_{3}+x_{2}x_{4}+...++x_{99}x_{100})              (x1x2+x1x3+...+x2x3+x2x4+...++x99x100), There will also be close 5000 A combination of features , It's for the average Logistic There are too many features to calculate for regression .
   Here's an example of computer vision , Suppose we want to train a classifier to detect images through machine learning algorithm , Judge whether a picture is a car . When we zoom in on the door handle in a picture of a car , The red frame that the human eye sees , What you see for a computer is a data matrix that represents the intensity of a pixel , Pictured 3 Shown . The problem of computer vision is to tell us that these values represent a doorknob according to the pixel illumination matrix .

 Insert picture description here

chart 3 The data matrix of pixel intensity values seen by the computer


   To be specific , When building a car recognizer with machine learning algorithm , What we need to do is provide a sample set with labels , Some of the samples are pictures of all kinds of cars , The other part of the sample is not a picture of a car , Pictured 4 Shown . Input this sample set to the learning algorithm , To train a classifier , Then test , That is, input a new picture to judge whether it is a car .
 Insert picture description here

chart 4 Labeled sample sets


   In order to better understand the necessity of introducing nonlinear Hypothesis , We find some car pictures and some non car pictures from the training samples of the learning algorithm , Let's say we only use grayscale images . We select a set of pixels from the image (pixel1,pixel2), Mark the position of the car in the coordinate system , The position of the car depends on pixel1 and pixel2 The intensity of . Next we'll do the same with other images , Mark the positions of other pictures in the coordinate system in turn ( For cars “+” Mark , Non Automotive “-” Mark ), We can find that car samples and non car samples are distributed in different areas of the coordinate system , Pictured 5 Shown . therefore , We need a nonlinear hypothesis to separate the two types of samples as much as possible .

 Insert picture description here

chart 5 The location distribution of car samples and non car samples in the coordinate system


   What is the dimension of the feature space in this example ? Suppose we use                            50                    ×                    50                         50\times50              50×50 Pixel image , And we see all the pixels as features , Will have a 2500 Features , If we want to further combine the two features to form a polynomial model , There will be an appointment                                              250                                     0                               2                                           2                                 \frac{2500^{2}}{2}              225002 individual ( Close to three million ) features .
   ordinary Logistic Regression models can't deal with so many features effectively , At this time, we need neural networks to help us deal with the input features n When it's big .

2. Neurons and the brain

   Neural network is a very old algorithm , It was originally created to create machines that mimic the brain .
   Neural networks emerged in the 1980s and 1990s , It was widely used at that time . But for various reasons , stay 90 Late S , Its use has gradually declined . In recent years, , Neural networks are back on their feet , One reason is : Neural network is an algorithm with a little too much computation , In recent years, the speed of computers has become faster , It's enough to really run a large-scale neural network , Today's neural network is the most advanced technology for many applications .
   Neurons are the most basic structural and functional units of the nervous system , It's made up of three parts , They are dendrites 、 Cell bodies and axons , Pictured 6 Shown . Dendrites are the ones that receive input , Axons are used for output . The dendrites of neurons receive specific input stimuli , The cell body will be activated , And through the axon to other neurons or neurons output excitation , This causes more neurons to be activated , The formation of one after another neural network activation phenomenon , And the orderly activation of neurons is the root cause of our thinking and behavior .

 Insert picture description here

chart 6 The composition of neurons

   When we want to simulate the brain , It's about trying to make machines that work the same way as the human brain . The brain can learn to process images by looking rather than listening , Learn to deal with our touch , Pictured 7 Shown .

 Insert picture description here

chart 7 Somatosensory cortex map


   Neuroscientists have done a very interesting experiment , Cut the nerve from the ear to the auditory cortex . under these circumstances , Plug it back into an animal's brain , So the signal from the eye to the optic nerve will eventually go to the auditory cortex , So the results show that the auditory cortex will learn “ see ”. therefore , If you do this to animals , Then animals can perform the task of visual discrimination , They can look at images , And make appropriate decisions based on the images . This is known as Nerve reconnection experiment . In this sense , If the human body has the same brain tissue that can process light 、 Acoustic or tactile signals , So maybe there's a learning algorithm , You can deal with vision at the same time 、 Hearing and touch , Instead of running thousands of different programs , Or thousands of different algorithms to do the thousands of things that these brains do . Maybe what we need to do is find some approximate or practical brain learning algorithms , And then the brain learns how to deal with these different types of data through self-study . To a large extent , You can imagine that if we connect almost any kind of sensor to almost any part of the brain , The brain will learn to deal with it .

3. Model to represent I

   To build a neural network model , We need to think about the neural network in the brain first ? Every neuron can be thought of as a processing unit / Nucleus nervi (processing unit/Nucleus), It contains many inputs / Dendrites (input/Dendrite), And there's an output / axon (output/Axon), Pictured 8 Shown . Neural network is a network that a large number of neurons are connected to each other and communicate through electrical impulses .

 Insert picture description here

chart 8 Neurons in the brain


   The neural network model is based on many neurons , Each neuron is a learning model . These neurons ( Also called activation unit ,activation unit) Take some features as input , And provide an output based on its own model .
   chart 9 This is an example of Logistic Regression model as a neuron example of Self-learning Model . In the neural network , Parameters can also be called weights (weight).
 Insert picture description here

chart 9 Logistic Unit neuron model


In the model above                                     h                         θ                            (                    x                    )                    =                             1                                  1                          +                                     e                                          −                                             θ                                     T                                            x                                                             h_{\theta}(x)=\frac{1}{1+e^{-\theta ^{T}x}}              hθ(x)=1+eθTx1, namely Sigmoid Activation function .
   Next, we designed a neural network similar to neurons , Pictured 10 Shown .

 Insert picture description here

chart 10 Neural network model


among ,                                     x                         1                                 x_{1}              x1、                                     x                         2                                 x_{2}              x2、                                     x                         3                                 x_{3}              x3 It's the input unit (input units), We input raw data to them .                                     a                         1                                 a_{1}              a1、                                     a                         2                                 a_{2}              a2、                                     a                         3                                 a_{3}              a3 It's the intermediate unit , They are responsible for processing the data , And then to the next level . Finally, the output unit , It's responsible for calculating                                     h                         θ                            (                    x                    )                         h_{\theta}(x)              hθ(x).
   Neural network models are many Logistic A network of units organized at different levels , The output variables of each layer are the input variables of the next layer . chart 10 For one 3 Layer of neural network , The first layer becomes the input layer (Input Layer), The last layer is called the output layer (Output Layer), The middle layer becomes the hidden layer (Hidden Layers). We add a bias cell to each layer (bias unit), Pictured 11 Shown .

 Insert picture description here

chart 11 Neural network model with bias element added


among ,                                     a                         i                                  (                          j                          )                                         a_{i}^{(j)}              ai(j) On behalf of the                            j                         j              j Layer of the first                            i                         i              i Two activation units .                                     θ                                  (                          j                          )                                         \theta^{(j)}              θ(j) From the first                            j                         j              j Layers are mapped to                            j                    +                    1                         j+1              j+1 The matrix of the weight of the layer , Its size is in the order of                            j                    +                    1                         j+1              j+1 The number of active cells in a layer is the number of rows , By the end of                            j                         j              j A matrix in which the number of active cells of a layer plus one is the number of columns . for example , The size in the neural network shown above is                            3                    ×                    4                         3\times4              3×4.
   For the model shown above , The activation unit and output are expressed as :
                                         a                          1                                     (                               2                               )                                           =                         g                         (                                  θ                          10                                     (                               1                               )                                                    x                          0                                 +                                  θ                          11                                     (                               1                               )                                                    x                          1                                 +                                  θ                          12                                     (                               1                               )                                                    x                          2                                 +                                  θ                          13                                     (                               1                               )                                                    x                          3                                 )                            a_{1}^{(2)}=g(\theta_{10}^{(1)}x_{0}+\theta_{11}^{(1)}x_{1}+\theta_{12}^{(1)}x_{2}+\theta_{13}^{(1)}x_{3})                 a1(2)=g(θ10(1)x0+θ11(1)x1+θ12(1)x2+θ13(1)x3)

                                         a                          2                                     (                               2                               )                                           =                         g                         (                                  θ                          20                                     (                               1                               )                                                    x                          0                                 +                                  θ                          21                                     (                               1                               )                                                    x                          1                                 +                                  θ                          22                                     (                               1                               )                                                    x                          2                                 +                                  θ                          23                                     (                               1                               )                                                    x                          3                                 )                            a_{2}^{(2)}=g(\theta_{20}^{(1)}x_{0}+\theta_{21}^{(1)}x_{1}+\theta_{22}^{(1)}x_{2}+\theta_{23}^{(1)}x_{3})                 a2(2)=g(θ20(1)x0+θ21(1)x1+θ22(1)x2+θ23(1)x3)

                                         a                          3                                     (                               2                               )                                           =                         g                         (                                  θ                          30                                     (                               1                               )                                                    x                          0                                 +                                  θ                          31                                     (                               1                               )                                                    x                          1                                 +                                  θ                          32                                     (                               1                               )                                                    x                          2                                 +                                  θ                          33                                     (                               1                               )                                                    x                          3                                 )                            a_{3}^{(2)}=g(\theta_{30}^{(1)}x_{0}+\theta_{31}^{(1)}x_{1}+\theta_{32}^{(1)}x_{2}+\theta_{33}^{(1)}x_{3})                 a3(2)=g(θ30(1)x0+θ31(1)x1+θ32(1)x2+θ33(1)x3)

                                         h                          θ                                 (                         x                         )                         =                                  a                          1                                     (                               3                               )                                           =                         g                         (                                  θ                          10                                     (                               2                               )                                                    a                          0                                     (                               2                               )                                           +                                  θ                          11                                     (                               2                               )                                                    a                          1                                     (                               2                               )                                           +                                  θ                          12                                     (                               2                               )                                                    a                          2                                     (                               2                               )                                           +                                  θ                          13                                     (                               2                               )                                                    a                          3                                     (                               2                               )                                           )                            h_{\theta}(x)=a_{1}^{(3)}=g(\theta_{10}^{(2)}a_{0}^{(2)}+\theta_{11}^{(2)}a_{1}^{(2)}+\theta_{12}^{(2)}a_{2}^{(2)}+\theta_{13}^{(2)}a_{3}^{(2)})                 hθ(x)=a1(3)=g(θ10(2)a0(2)+θ11(2)a1(2)+θ12(2)a2(2)+θ13(2)a3(2))

   The above is just a line in the characteristic matrix ( A training example ) Feed it to the neural network , We need to feed the whole training set to our neural network algorithm to learn the model . We know every one of them                            a                         a              a It's all owned by the upper floor                            x                         x              x And each one                            x                         x              x The corresponding                            θ                         \theta              θ Decisive . We call this algorithm from left to right forward propagation algorithm ( Forward Propagation).
   hold                            x                    、                    θ                    、                    a                         x、\theta、a              x、θ、a Each is represented by a matrix :
                                                                            X                                     =                                                  [                                                                                                                         x                                                       0                                                                                                                                                                               x                                                       1                                                                                                                                                                               x                                                       2                                                                                                                                                                               x                                                       3                                                                                                                    ]                                                 ,                                                                                             θ                                     =                                                  [                                                                                                                         θ                                                       10                                                                                                                                                   θ                                                       11                                                                                                                                                   θ                                                       12                                                                                                                                                   θ                                                       13                                                                                                                                                                               θ                                                       20                                                                                                                                                   θ                                                       21                                                                                                                                                   θ                                                       22                                                                                                                                                   θ                                                       23                                                                                                                                                                               θ                                                       30                                                                                                                                                   θ                                                       31                                                                                                                                                   θ                                                       32                                                                                                                                                   θ                                                       33                                                                                                                    ]                                                 ,                                                                                             a                                     =                                                  [                                                                                                                         a                                                       1                                                                                                                                                                               a                                                       2                                                                                                                                                                               a                                                       3                                                                                                                    ]                                                                                \begin{matrix} X=\begin{bmatrix} x_{0}\\ x_{1}\\ x_{2}\\ x_{3} \end{bmatrix} ,&\theta =\begin{bmatrix} \theta _{10} &\theta _{11} &\theta _{12} &\theta _{13}\\ \theta _{20} &\theta _{21} &\theta _{22} &\theta _{23} \\ \theta _{30}&\theta _{31} &\theta _{32} &\theta _{33} \end{bmatrix} , & a=\begin{bmatrix} a_{1}\\ a_{2}\\ a_{3} \end{bmatrix} \end{matrix}                 X=x0x1x2x3,θ=θ10θ20θ30θ11θ21θ31θ12θ22θ32θ13θ23θ33,a=a1a2a3

We can get                            θ                    ⋅                    x                    =                    a                         \theta\cdot x=a              θx=a.

4. Model to represent II

   Coding relative to using cycles , The vectorization method will make the calculation easier . Take the above neural network as an example , Try to calculate the value of the second layer :

                                                                            X                                     =                                                  [                                                                                                                         x                                                       0                                                                                                                                                                               x                                                       1                                                                                                                                                                               x                                                       2                                                                                                                                                                               x                                                       3                                                                                                                    ]                                                 ,                                                                                                          z                                                     (                                           2                                           )                                                               =                                                  [                                                                                                                         z                                                       1                                                                          (                                                        2                                                        )                                                                                                                                                                                                 z                                                       2                                                                          (                                                        2                                                        )                                                                                                                                                                                                 z                                                       3                                                                          (                                                        2                                                        )                                                                                                                                      ]                                                                                \begin{matrix} X=\begin{bmatrix} x_{0}\\ x_{1}\\ x_{2}\\ x_{3} \end{bmatrix} ,& z^{(2)}=\begin{bmatrix} z^{(2)}_{1}\\ z^{(2)}_{2} \\ z^{(2)}_{3} \end{bmatrix} \end{matrix}                 X=x0x1x2x3,z(2)=z1(2)z2(2)z3(2)

                                         z                                     (                               2                               )                                           =                                  θ                                     (                               1                               )                                           x                         =                                  θ                                     (                               1                               )                                                    a                                     (                               1                               )                                              z^{(2)}=\theta^{(1)}x =\theta^{(1)}a^{(1)}                 z(2)=θ(1)x=θ(1)a(1)

                                         a                                     (                               2                               )                                           =                         g                         (                                  z                                     (                               2                               )                                           )                            a^{(2)}=g(z^{(2)})                 a(2)=g(z(2))

Add... After calculation                                     a                         0                                  (                          2                          )                                    =                    1                         a_{0}^{(2)}=1              a0(2)=1, You can get                                     z                                  (                          3                          )                                    =                             θ                                  (                          2                          )                                             a                                  (                          2                          )                                         z^{(3)}=\theta^{(2)}a^{(2)}              z(3)=θ(2)a(2), The output of                                     h                         θ                            (                    x                    )                    =                             a                                  (                          3                          )                                    =                    g                    (                             z                                  (                          3                          )                                    )                         h_{\theta}(x)=a^{(3)}=g(z^{(3)})              hθ(x)=a(3)=g(z(3)). This is just a calculation for a training instance in the training set . If we want to calculate the whole training set , We need to transpose the characteristic matrix of the training set , Make the features of the same instance in the same column . namely :

                                         z                                     (                               2                               )                                           =                                  θ                                     (                               1                               )                                                    X                          T                                    z^{(2)}=\theta^{(1)}X^{T}                 z(2)=θ(1)XT

                                         a                                     (                               2                               )                                           =                         g                         (                                  z                                     (                               2                               )                                           )                         =                         g                         (                                  θ                                     (                               1                               )                                                    X                          T                                 )                            a^{(2)}=g(z^{(2)})=g(\theta^{(1)}X^{T})                 a(2)=g(z(2))=g(θ(1)XT)

   In order to better understand the working principle of neural network , Let's cover the left half first , Pictured 12 Shown .

 Insert picture description here

chart 12 The neural network model covering the left half


The right half is actually                                     a                         0                            、                             a                         1                            、                             a                         2                            、                             a                         3                                 a_{0}、a_{1}、a_{2}、a_{3}              a0、a1、a2、a3 according to Logistic Output in the form of regression                                     h                         θ                            (                    x                    )                         h_{\theta}(x)              hθ(x).
   In fact, neural networks are like Logistic Return to , It's just that we put Logistic The input vector in regression                                     x                         1                            、                             x                         2                            、                             x                         3                                 x_{1}、x_{2}、x_{3}              x1、x2、x3 It becomes the middle layer                                     a                         1                            、                             a                         2                            、                             a                         3                                 a_{1}、a_{2}、a_{3}              a1、a2、a3, namely :                                     h                         θ                            (                    x                    )                    =                    g                    (                             θ                         0                                  (                          2                          )                                             a                         0                                  (                          2                          )                                    +                             θ                         1                                  (                          2                          )                                             a                         1                                  (                          2                          )                                    +                             θ                         2                                  (                          2                          )                                             a                         2                                  (                          2                          )                                    +                             θ                         3                                  (                          2                          )                                             a                         3                                  (                          2                          )                                    )                         h_{\theta}(x)=g(\theta_{0}^{(2)}a_{0}^{(2)}+\theta_{1}^{(2)}a_{1}^{(2)}+\theta_{2}^{(2)}a_{2}^{(2)}+\theta_{3}^{(2)}a_{3}^{(2)})              hθ(x)=g(θ0(2)a0(2)+θ1(2)a1(2)+θ2(2)a2(2)+θ3(2)a3(2)). We can                                     a                         0                                 a_{0}              a0、                                     a                         1                                 a_{1}              a1、                                     a                         2                                 a_{2}              a2、                                     a                         3                                 a_{3}              a3 As more advanced eigenvalues , That is to say                                     x                         0                            、                             x                         1                            、                             x                         2                            、                             x                         3                                 x_{0}、x_{1}、x_{2}、x_{3}              x0、x1、x2、x3 The evolutionary body of , And they are made up of                            x                         x              x And                            θ                         \theta              θ Decisive . Because it's a gradient , therefore                            a                         a              a It is changing. , And it's getting worse and worse , So these higher-level eigenvalues are far more than just                            x                         x              x Power is powerful , It can also better predict new data . That's how neural networks compare to Logistic The advantages of regression and linear regression .

5. Multi category classification

   Handwritten numeral recognition is a multi class classification problem , It has 10 Categories that need to be identified . So when we have more than two categories ( That is to say                            y                    =                    1                    ,                    2                    ,                    3                    ,                    .                    .                    .                         y=1,2,3,...              y=1,2,3,...), What should I do ? In essence, the method to realize multi class classification in neural network is the extension of one to many method .
   If we want to train a neural network algorithm to recognize pedestrians 、 automobile 、 Motorcycles and trucks , Pictured 13 Shown . Unlike previous examples of identifying cars and non cars , This time in the output layer we should have 4 It's worth , The first value is 1 or 0 Used to predict whether a pedestrian , The second value is used to determine whether it is a car , The third value is used to determine whether it is a motorcycle , The second value is used to determine if it's a truck .
 Insert picture description here

chart 13 Examples of multi category classification


   Input vector                            x                         x              x There are three dimensions , Two intermediate layers , The output layer has 4 Two neurons are used to represent 4 class , That is, every data will appear in the output layer                            [                    a                    ,                    b                    ,                    c                    ,                    d                             ]                         T                                 [a,b,c,d]^{T}              [a,b,c,d]T, And                            a                    ,                    b                    ,                    c                    ,                    d                         a,b,c,d              a,b,c,d Only one of them is for 1, Represents the current class . The possible structure of the neural network corresponding to this example is shown in the figure 14 Shown .
 Insert picture description here

chart 14 A neural network model with four outputs


   The training set is                            (                             x                                  (                          1                          )                                    ,                             y                                  (                          1                          )                                    )                    ,                    (                             x                                  (                          2                          )                                    ,                             y                                  (                          2                          )                                    )                    ,                    .                    .                    .                    ,                    (                             x                                  (                          m                          )                                    ,                             y                                  (                          m                          )                                    )                         (x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})              (x(1),y(1)),(x(2),y(2)),...,(x(m),y(m)), among                            m                         m              m Is the number of samples ,                                     x                                  (                          i                          )                                         x^{(i)}              x(i) A picture of one of the four objects ,                                     y                                  (                          i                          )                                         y^{(i)}              y(i) Vector                                                                                 [                                                                                                 1                                                                                                                                 0                                                                                                                                 0                                                                                                                                 0                                                                                             ]                                            、                                                                                                 [                                                                                                 0                                                                                                                                 1                                                                                                                                 0                                                                                                                                 0                                                                                             ]                                            、                                                                                                 [                                                                                                 0                                                                                                                                 0                                                                                                                                 1                                                                                                                                 0                                                                                             ]                                            、                                                                                    [                                                                                        0                                                                                                                        0                                                                                                                        0                                                                                                                        1                                                                                    ]                                                             \begin{matrix} \begin{bmatrix} 1\\ 0\\ 0\\ 0 \end{bmatrix}、&\begin{bmatrix} 0\\ 1\\ 0\\ 0 \end{bmatrix}、&\begin{bmatrix} 0\\ 0\\ 1\\ 0 \end{bmatrix}、 & \begin{bmatrix} 0\\ 0\\ 0\\ 1 \end{bmatrix} \end{matrix}              1000010000100001 One of the four situations .

   The output of the neural network model we want to build                                     h                         θ                            (                    x                    )                    ≈                             y                                  (                          i                          )                                         h_{\theta}(x)\approx y^{(i)}              hθ(x)y(i). When                                     h                         θ                            (                    x                    )                    ≈                             [                                                                     1                                                                                             0                                                                                             0                                                                                             0                                                                 ]                                 h_{\theta}(x)\approx \begin{bmatrix} 1\\ 0\\ 0\\ 0 \end{bmatrix}              hθ(x)1000 when , The forecast picture is pedestrian ; When                                     h                         θ                            (                    x                    )                    ≈                             [                                                                     0                                                                                             1                                                                                             0                                                                                             0                                                                 ]                                 h_{\theta}(x)\approx \begin{bmatrix} 0\\ 1\\ 0\\ 0 \end{bmatrix}              hθ(x)0100 when , The forecast picture is cars ; When                                     h                         θ                            (                    x                    )                    ≈                             [                                                                     0                                                                                             0                                                                                             1                                                                                             0                                                                 ]                                 h_{\theta}(x)\approx \begin{bmatrix} 0\\ 0\\ 1\\ 0 \end{bmatrix}              hθ(x)0010 when , The predicted picture is motorcycle ; When                                     h                         θ                            (                    x                    )                    ≈                             [                                                                     0                                                                                             0                                                                                             0                                                                                             1                                                                 ]                                 h_{\theta}(x)\approx \begin{bmatrix} 0\\ 0\\ 0\\ 1 \end{bmatrix}              hθ(x)0001 when , The forecast picture is a truck .