Bài trước học về thuật toán logistic regression với giá trị đầu ra là nhị phân. Tuy nhiên, logistic regression là một mô hình neural network đơn giản, bài này sẽ học mô hình neural network đầy đủ.

Đang xem: Deep neural network là gì

Bạn nên hoàn thành 2 bài trước linear regression và logistic regression trước khi vào bài này. Trong bài này có khá nhiều kí hiệu và công thức, nên bạn nên chuẩn bị giấy bút để bắt đầu.

Neural network là gì

Con chó có thể phân biệt được người thân trong gia đình và người lạ hay đứa trẻ có thể phân biệt được các con vật. Những việc tưởng chừng như rất đơn giản nhưng lại cực kì khó để thực hiện bằng máy tính. Vậy sự khác biệt nằm ở đâu? Câu trả lời nằm ở bộ não với lượng lớn các nơ-ron thần kinh liên kết với nhau. Thế thì máy tính có nên mô phỏng lại mô hình ấy để giải các bài toán trên ???

Neural là tính từ của neuron (nơ-ron), network chỉ cấu trúc đồ thị nên neural network (NN) là một hệ thống tính toán lấy cảm hứng từ sự hoạt động của các nơ-ron trong hệ thần kinh.

Hoạt động của các nơ-ron

*

Để biểu diễn gọn lại ta sẽ gộp hai bước trên thành một trên biểu đồ

*

Mô hình neural network

Layer đầu tiên là input layer, các layer ở giữa được gọi là hidden layer, layer cuối cùng được gọi là output layer. Các hình tròn được gọi là node.

Mỗi mô hình luôn có 1 input layer, 1 output layer, có thể có hoặc không các hidden layer. Tổng số layer trong mô hình được quy ước là số layer – 1 (Không tính input layer).

Ví dụ như ở hình trên có 1 input layer, 2 hidden layer và 1 output layer. Số lượng layer của mô hình là 3 layer.

Mỗi node trong hidden layer và output layer :

Liên kết với tất cả các node ở layer trước đó với các hệ số w riêng.Mỗi node có 1 hệ số bias b riêng.Diễn ra 2 bước: tính tổng linear và áp dụng activation function.

Kí hiệu

Số node trong hidden layer thứ i là l^{(i)}.

Ma trận W^{(k)} kích thước l^{(k-1)} * l^{(k)} là ma trận hệ số giữa layer (k-1) và layer k, trong đó w_{ij}^{(k)} là hệ số kết nối từ node thứ i của layer k-1 đến node thứ j của layer k.

Vector b^{(k)} kích thước l^{k} * 1 là hệ số bias của các node trong layer k, trong đó b_i^{(k)} là bias của node thứ i trong layer k.

Với node thứ i trong layer l có bias b_i^{(l)}thực hiện 2 bước:

Tính tổng linear: z_i^{(l)} = sum_{j=1}^{l^{(l-1)}} a_j^{(l-1)} * w_{ji}^{(l)} + b_i^{(l)} , là tổng tất cả các node trong layer trước nhân với hệ số w tương ứng, rồi cộng với bias b.Áp dụng activation function: a_i^{(l)} = sigma(z_i^{(l)})

Vector z^{(k)} kích thước l^{(k)} * 1 là giá trị các node trong layer k sau bước tính tổng linear.

Vector a^{(k)} kích thước l^{(k)} * 1 là giá trị của các node trong layer k sau khi áp dụng hàm activation function.

*

Tương tự ta có:

z^{(2)} = (W^{(2)})^T * a^{(1)} + b^{(2)}
ewline a^{(2)} = sigma(z^{(2)})
ewline z^{(3)} = (W^{(3)})^T * a^{(2)} + b^{(3)}
ewline hat{y} = a^{(3)} = sigma(z^{(3)})

*

Do đó

*

Vậy là có thể tính được giá trị dự đoán của nhiều dữ liệu 1 lúc dưới dạng ma trận.

Xem thêm: Bí Kíp Deal Lương Thỏa Thuận Tiếng Anh Là Gì, Hướng Dẫn Chi Tiết Đàm Phán Lương Bằng Tiếng Anh

Giờ từ input X ta có thể tính được giá trị dự đoán hat{Y}, tuy nhiên việc chính cần làm là đi tìm hệ số W và b. Có thể nghĩ ngay tới thuật toán gradient descent và việc quan trọng nhất trong thuật toán gradient descent là đi tìm đạo hàm của các hệ số đối với loss function. Và việc tính đạo hàm của các hệ số trong neural network được thực hiện bởi thuật toán backpropagation, sẽ được giới thiệu ở bài sau. Và vì bài này có quá nhiều công thức sợ mọi người rối nên code sẽ được để ở bài sau.

Logistic regression với toán tử XOR

Phần này không bắt buộc, nó giúp giải thích việc có nhiều layer hơn thì mô hình có vẻ sẽ giải quyết được các bài toán phức tạp hơn. Cụ thể là mô hình logistic regresion bài trước không biểu diễn được toán tử XOR nhưng nếu thêm 1 hidden layer với 2 node ở giữa input layer và output layer thì có thể biểu diễn được toán tử XOR.

AND, OR, XOR là các phép toán thực hiện phép tính trên bit. Thế bit là gì? bạn không cần quan tâm, chỉ cần biết mỗi bit nhận 1 trong 2 giá trị là 0 hoặc 1.

NOT

Phép tính NOT của 1 bit cho ra giá trị ngược lại.

A NOT(A)
1 0
0 1

AND

Phép tính AND của 2 bit cho giá trị 1 nếu cả 2 bit bằng 1 và cho giá trị bằng 0 trong các trường hợp còn lại. Bảng chân lý

A B A AND B
0 0 0
0 1 0
1 0 0
1 1 1

Giờ muốn máy tính học toán tử AND, ta thấy là kết quả là 0 và 1, nên nghĩ ngay đến logistic regression với dữ liệu

x_1 x_2 y
0 0 0
0 1 0
1 0 0
1 1 1

*

Hình 1: x_1 AND x_2

*

Hình 2: NOT (x_1 AND x_2)

OR

Phép tính OR của 2 bit cho giá trị 1 nếu 1 trong 2 bit bằng 1 và cho giá trị bằng 0 trong các trường hợp còn lại. Bảng chân lý

A B A OR B
0 0 0
0 1 1
1 0 1
1 1 1

Tương tự ta cũng tìm được w_0 = -0.5, w_1 = 1, w_2 = 1

*

Mô hình XOR

Nhìn có vẻ rối nhỉ, cùng phân tích nhé:

node NOT(x_1 AND x_2) chính là từ hình 2, với 3 mũi tên chỉ đến từ 1, x_1, x_2 với hệ số w_0, w_1, w_2 tương ứng là 1.5, -1, -1.node tính x_1 OR x_2 là từ hình 3 node trong output layer là phép tính AND từ 2 node của layer trước, giá trị hệ số từ hình 1 mang xuống.

Xem thêm: Hướng Dẫn Root Xiaomi Redmi Note 2, Hướng Dẫn Root Redmi Note 2 Và Cài Đặt Ch Play

Nhận xét: mô hình logistic regression không giải quyết được bài toán XOR nhưng mô mình mới thì giải quyết được bài toán XOR. Đâu là sự khác nhau:

Logistic regression chỉ có từ input layer và output layerMô hình mới có 1 hidden layer có 2 node ở giữa input layer và output layer

=> Có vẻ càng nhiều layer và node thì càng giải quyết được các bài toán phức tạp hơn.

Leave a Reply

Your email address will not be published. Required fields are marked *