1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn bộ môn thực tập cơ sở đề tài mô hình mạng neuron nhân tạo

31 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô hình mạng neuron nhân tạo
Tác giả Phan Thiên Hưng
Người hướng dẫn TS. Nsguyễn Văn Thủy
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Khoa công nghệ thông tin
Thể loại Báo cáo bài tập lớn
Định dạng
Số trang 31
Dung lượng 646,33 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong mạng nơ-ron nhân tạo, một loạt các thuật toán được sử dụng để xác định và nhận ra các mối quan hệ trong các tập dữ liệu.. Phần tổng hợp trên mỗi nút của mạng nơron nhân tạo chính l

Trang 1

Học viện công nghệ bưu chính viễn thông

Khoa công nghệ thông tin I

-

 -Báo cáo Bài tập lớn

Bộ môn: Thực tập cơ sở

Đề tài : Mô hình mạng Neuron nhân tạo

GV hướng dẫn: TS Nsguyễn Văn Thủy

Sinh viên thực hiện: Phan Thiên Hưng

MSV: B19DCCN329

Trang 2

Mục Lục

I – Lý thuyết về Neural Network và các vấn đề liên quan 3

Ý tưởng của Neural Network 3

Mạng Neural nhân tạo 4

Thành phần của một mạng Neural nhân tạo 5

Input layer 5

Hidden layer 6

Output layer 6

Trọng số liên kết – Weights 6

Hàm kích hoạt (activation functions) 6

Hàm sigmoid 8

Hàm Tanh 10

Rectified Linear Unit (ReLU function) 11

Thuật toán Gradient Descent 11

II – Quá trình học của model 13

Feedforward 14

Backpropagation 15

III – Xây dựng model 16

Tiền xử lý dữ liệu 16

Xây dựng các hàm kích hoạt cho các layer 17

Khởi tạo mô hình và các giá trị ban đầu cho mỗi tham số trong mô hình 17

Huấn luyện mô hình với tập dữ liệu Train_data 18

Tính giá trị đầu ra dự đoán 19

Tính Loss (độ sai lệch của model) 19

Lặp lại quá trình fit model 20

Thử lại với tệp dữ liệu Test_data 20

IV – Áp dụng với bài toán toán tử XOR 20

Phép toán XOR 20

Giải quyết bài toán sử dụng mạng Neural nhân tạo 22

Input layer – hidden layer: 23

Hidden layer – Output 24

Tổng hợp mạng 25

Tạo dữ liệu, fit model, tính toán sai số và thử nghiệm dự đoán mô hình 26

Trang 3

Tài liệu tham khảo 29

Trang 4

I – Lý thuyết về Neural Network và các vấn đề liên quan

Ý tưởng của Neural Network

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 ron trong hệ thần kinh

nơ-Nơ- ron là đơn vị cơ bản cấu tạo hệ thống thần kinh và là một phần quan trọng nhất của não Não chúng ta gồm khoảng 10 triệu nơ-ron và mỗi nơ-ron liên kết với10.000 nơ-ron khác Ở mỗi nơ-ron có phần thân (soma) chứa nhân, các tín hiệu đầu vào qua sợi nhánh (dendrites) và các tín hiệu đầu ra qua sợi trục (axon) kết nốivới các nơ-ron khác Hiểu đơn giản mỗi nơ-ron nhận dữ liệu đầu vào qua sợi nhánh và truyền dữ liệu đầu ra qua sợi trục, đến các sợi nhánh của các nơ-ron khác Mỗi nơ-ron nhận xung điện từ các nơ-ron khác qua sợi nhánh Nếu các xung điện này đủ lớn để kích hoạt nơ-ron, thì tín hiệu này đi qua sợi trục đến các sợi nhánh của các nơ-ron khác

Trang 5

Mạng Neural nhân tạo

Neural network hay còn gọi là Mạng nơ-ron nhân tạo là mạng sử dụng các mô hìnhtoán học phức tạp để xử lý thông tin Trong mạng nơ-ron nhân tạo, một loạt các thuật toán được sử dụng để xác định và nhận ra các mối quan hệ trong các tập dữ liệu

Mỗi nút trong mạng được tổng hợp từ tất cả các nodes ở layer trước nó, đồng thời

là input để tổng hợp thành các nodes ở layer sau thông qua các hệ số Weight tươngứng Phần tổng hợp trên mỗi nút của mạng nơron nhân tạo chính là tổng trọng số của các đầu vào, cộng thêm với hệ số bias:

y=f (u)

Các hàm này sẽ được giới thiệu chi tiết ở phần sau

Quá trình xử lý thông tin của một ANN

Trang 6

Thành phần của một mạng Neural nhân tạo

Kiến trúc chung của một mạng Neural nhân tạo gồm 3 thành phần, chia thành cáclớp (layers): Input layer – lớp đầu vào, Hidden layer – các lớp ẩn và Output layer –lớp đầu ra Dữ liệu sẽ được truyền qua các lớp thống qua các trọng số liên kết(Weights) và hàm kích hoạt (activation functions)

Mô hình của một mạng Neural nhân tạo

Input layer

Mỗi node của Input layer tương ứng với 1 thuộc tính (attribute) của dữ liệu (data)

Ví dụ như trong ứng dụng của ngân hàng xem xét có chấp nhận cho khách hàng vay tiền hay không thì mỗi Input là một thuộc tính của khách hàng như thu nhập, nghề nghiệp, tuổi, số con,…; hoặc dựa vào các yếu tố như bán kính, tuổi của khốiu… để kết luận một trường hợp là ung thư lành tính hay ác tính…

Trang 7

Trọng số liên kết – Weights

Connection Weights (Trọng số liên kết): Đây là thành phần rất quan trọng của mộtANN, nó thể hiện mức độ quan trọng (độ mạnh) của dữ liệu đầu vào đối với quátrình xử lý thông tin (quá trình chuyển đổi dữ liệu từ Layer này sang layer khác).Quá trình học (Learning Processing) của ANN thực ra là quá trình điều chỉnh cáctrọng số (Weight) của các input data để có được kết quả mong muốn Thường được

w(ij k )

kí hiệu là , nghĩa là hệ số nối từ node thứ i của layer k-1 tới node thứ j củalayer k

Hàm kích hoạt (activation functions)

Trong mạng neural nhân tạo, một hàm kích hoạt là một hàm ánh xạ các đầu vàocủa một nút với đầu ra tương ứng của nó Ta lấy tổng trọng số của mỗi kết nối đếncho mỗi node trong layer và truyền tổng trọng số đó cho một hàm kích hoạt Hàmkích hoạt thực hiện một số loại hoạt động để biến đổi tổng thành một số Phép biếnđổi này thường là một phép biến đổi phi tuyến tính

node output = activation(weighted sum of inputs)

Tại sao lại cần các hàm kích hoạt phi tuyến?

Trang 8

Một đặc điểm quan trọng của hàm tuyến tính là hợp của hai hàm tuyến tính cũng làmột hàm tuyến tính Điều này có nghĩa là, ngay cả trong các mạng neural rất sâu, nếu chỉ có các phép biến đổi tuyến tính các giá trị dữ liệu trong quá trình chuyển tiếp, thì ánh xạ đã học trong mạng từ đầu vào đến đầu ra cũng sẽ là tuyến tính Thông thường, các loại ánh xạ với mạng neural sâu phức tạp hơn các ánh xạ tuyến tính đơn giản Đây là nơi các hàm kích hoạt xuất hiện Hầu hết các hàm kích hoạt

là phi tuyến tính và chúng được chọn theo cách có chủ đích Việc có các hàm kích hoạt phi tuyến tính cho phép các mạng neural tính toán các chức năng phức tạp tùyý

Một số activation function nổi bật và thường được sử dụng nhất là hàm Tanh,ReLU, Sigmoid và Softmax

Trong đó Sigmoid, Softmax được sử dụng ở các nơron đầu ra, tương ứng cho bài toàn phân loại (classification) hay hồi quy (regression) Các hàm kích hoạt

(activation function) Sigmoid, Tanh và ReLU và được dùng trong kết nối giữa các nơron với nhau Trong số các hàm kích hoạt trên, ReLU là hàm kích hoạt thường được sử dụng hơn cả, do hiện tượng tiêu biến độ dốc (vanishing gradient) ở hàm kích hoạt (activation function) Sigmoid và Tanh Hiện tượng tiêu biến độ dốc (vanishing gradient) xảy ra đối với các giá trị ở những điểm bão hòa của hàm số Tanh và Sigmoid, lúc này đạo hàm (derivative) trở nên rất nhỏ, hậu quả làm cho việc thay đổi các trọng số (weight) trong quá trình huấn luyện (training) gần như bằng 0, việc huấn luyện (training) của model gần như không có tác dụng Với hàm kích hoạt (activation function) ReLU, các giá trị dương giờ đây được giữ nguyên giá trị, không còn những điểm bão hòa nữa, đạo hàm (derivative) luôn có độ lớn đủtốt cho việc huấn luyện (training)

Trang 9

Đồ thị hàm Sigmoid và hàm Tanh và đạo hàm của chúng

Hàm sigmoid

Sigmoid có thể được coi là một hàm được sử dụng để làm trơn dữ liệu và nó là mộthàm khả vi và bị chặn Sigmoid rất hữu ích để chuyển đổi bất kỳ giá trị nào thành xác suất và có thể được sử dụng để phân lớp nhị phân - binary classification Hàm Sigmoid ánh xạ dữ liệu đầu vào thành giá trị trong khoảng [0;1] Có thể viết công thức toán học của nó như sau:

f (x )= 1

Đồ thị của hàm số này được biểu biểu diễn như hình:

Trang 10

Đạo hàm của hàm Sigmoid:

Công thức đạo hàm khá đơn giản nên Sigmoid function được sử dụng rộng

rãi trong các model

Nhược điểm: khi giá trị tuyệt đối của x quá lớn, giá trị Gradient tiệm cận đến 0, đồng nghĩa với việc các hệ số đang xét trong model không được cập nhật, và điều đó sẽ dẫn đến hiện tượng mạng không thể học được gì tốt hơn Hiện tượng này được gọi là biến mất đạo hàm hay vanishing gradients

Trang 11

Hàm Tanh

Hàm tiếp tuyến hyperbol, hay còn gọi là hàm tanh là một phiên bản thu nhỏ của sigmoid Giống như hàm sigmoid, tanh là một hàm liên tục và khả vi Hàm này sẽánh xạ dữ liệu input vào trong khoảng từ -1 đến 1 Công thức toán học của nó như sau:

tanh (x )= ex e x

e x +e−x

Hoặc có thể biểu diễn bằng hàm sigmoid:

tanh (x )=2 σ (2 x )−1 với σ ( x ) là hàm sigmoid

Hàm tanh được thể hiện ở biểu đồ sau:

Đồ thị hàm tanhĐạo hàm của hàm tanh:

tanh' ( x )=( e x + ex )( e x + ex )−( ex ex )( e xex ) =1− (e x +e −x )2 =1−tanh 2 (x )

Nhược điểm: Cũng như Sigmoid, hàm Tanh bị bão hoà ở 2 đầu (gradient thay đổirất ít ở 2 đầu), khó khăn với việc sử dụng với các tham số lớn

Trang 12

Để khắc phục các vấn đề của sigmoid function và tanh function, người ta đưa ramột hàm kích hoạt khác có tên là Rectified Linear Unit (ReLU).

Rectified Linear Unit (ReLU function).

ReLU function dựa trên tư tưởng của việc loại bỏ bớt những tham số không quan trọng trong quá trình training và điều đó là cho mạng trở nên nhẹ hơn và việc training cũng nhanh chóng và có hiệu quả hơn Hàm này thực hiện cơ chế khá đơngiản: giữ nguyên những giá trị đầu vào lớn hơn 0, nếu giá trị đầu vào nhỏ hơn 0 thì coi là 0

Bởi vì hàm ReLU trả về dữ liệu khác 0 trong mọi trường hợp > 0 nên điều đó làm mạng không phải training những dữ liệu không cần thiết và hơn nữa công thức củaReLU rất đơn giản khiến cho việc tính toán cũng trở nên dễ dàng hơn Ngoài ra, sửdụng hàm ReLU giúp tính toán trong mạng cực kì nhanh do đạo hàm của nó luôn bằng 1 với mọi x>0 Ngoài ra, nó có tốc độ hội tụ và độ ổn định ưu việt hơn so với

2 hàm đã nêu ở trên

Đồ thị hàm ReLUThuật toán Gradient Descent.

Trong các bài toán về Học máy, ta thường xuyên phải tìm giá trị nhỏ nhất (hoặc đôi khi là lớn nhất) của một hàm số nào đó Ví dụ như các hàm mất mát của các activation function Nhìn chung, việc tìm giá trị cực tiểu toàn cục - global

minimum của các hàm mất mát trong một mô hình là rất phức tạp, thậm chí là bất

Trang 13

khả thi Thay vào đó, người ta thường cố gắng tìm các điểm cục tiểu - local

minimum, và ở một mức độ nào đó, coi đó là nghiệm cần tìm của bài toán

Các điểm local minimum là nghiệm của phương trình đạo hàm bằng 0 Nếu bằng một cách nào đó có thể tìm được toàn bộ (hữu hạn) các điểm cực tiểu, ta chỉ cần thay từng điểm local minimum đó vào hàm số rồi tìm điểm làm cho hàm có giá trị nhỏ nhất Tuy nhiên, trong hầu hết các trường hợp, việc giải phương trình đạo hàm bằng 0 là bất khả thi Nguyên nhân có thể đến từ sự phức tạp của dạng của đạo hàm, từ việc các điểm dữ liệu có số chiều lớn, hoặc từ việc có quá nhiều điểm

dữ liệu

Hướng tiếp cận phổ biến nhất là xuất phát từ một điểm mà chúng ta coi là gần vớinghiệm của bài toán, sau đó dùng một phép toán lặp để tiến dần đến điểm cần tìm,tức đến khi đạo hàm gần với 0 Gradient Descent (viết gọn là GD) và các biến thể của nó là một trong những phương pháp được dùng nhiều nhất Trong mô hình mạng neural nhân tạo, phương pháp này được sử dụng để có thể tối ưu các

Weights, Bias và Loss, từ đó ta dần cải thiện độ chính xác của model lên

Đồ thị vềthuật toán Gradient Descent

Trang 14

Trong hình trên, ta có thể thấy:

- Nếu đạo hàm của hàm số ở thời điểm t: tại x

t : f ' ( x

t )>0 thì x

t nằm bên phải so với điểm cực trị, và ngược lại Tại lần xét kế tiếp, để điểm tiếp theo

x

t+1 gần với điểm cực trị hơn, ta cần di chuyển x

t về phía bên trái, tức về phía âm Nói các khác, ta cần di chuyển ngược dấu với đạo hàm:

ngược lại) Vậy, lượng di chuyển delta đơn giản là tỉ lệ thuận với −f ' (x

Một số loại Gradient Descent cơ bản: Batch Gradient Descent,

Mini-batch Gradient Descent và Stochastic Gradient Descent

II – Quá trình học của model

Quá trình học (Learning Processing) của một mạng Neural nhân tạo:

ANN được huấn luyện (Training) hay được học (Learning) theo 2 kỹ thuật cơ bản

đó là học có giám sát (Supervised Learning) và học không giám sát(Unsupervised Learning)

Trang 15

- Supervised learning: Quá trình Training được lặp lại cho đến kết quả (output) của ANN đạt được giá trị mong muốn (Desired value) đã biết Điển hình cho kỹ thuật này là mạng Neuron lan truyền ngược (Backpropagation).

- Unsupervised learning: Không sử dụng tri thức bên ngoài trong quá trình học (Learning), nên còn gọi là tự tổ chức (Self – Organizing) Mạng Neuron điển hình được huấn luyện theo kiểu Unsupervised là Sefl – Organizing Map (SOM).Trong bài tập lần này, em chỉ nghiên cứu về kỹ thuật Supervised Learning.Feedforward

Như đã đề cập ở các phần trên, ở các layers ẩn, các nodes ở layer trước là input củacác node ở layer sau

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 biểu diễn hệ số giữa layer (k-1) và layer

k, trong đó w (k)[i][j] 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 (k)

[i] là bias của node thứ i trong layer k

Với node thứ i trong layer l có bias b (l) ¿i] thực hiện 2 bước:

Sau khi xử lí qua hết tất cả các layer, ta thu được kết quả ở output layer là giá trị

dự đoán của model y^

Trang 16

Feedforward trong mạng Neural nhân tạoBackpropagation

Sự lan truyền ngược (Backpropagation) là một cơ chế thiết yếu mà mạng nơ-ron được đào tạo Nó là một cơ chế được sử dụng để tinh chỉnh trọng số của model mạng Neural nhân tạo, liên quan đến tỷ lệ lỗi được tạo ra trong lần lặp trước Sự lan truyền ngược trong mạng nơ- ron là về truyền tải thông tin và liên hệ thông tin này với lỗi do mô hình tạo ra khi thực hiện dự đoán (quá trình Feedforward) Phương pháp này tìm cách giảm lỗi, còn được gọi là hàm mất mát

Ban đầu khi mạng nơ ron được thiết kế, các giá trị ngẫu nhiên được gán dưới dạng trọng số Ta không chắc liệu các giá trị trọng lượng được chỉ định có chính xác hoặc phù hợp với mô hình hay không Kết quả là, mô hình xuất ra giá trị khácvới đầu ra thực tế hoặc dự kiến, đó là một giá trị lỗi

Để có được kết quả đầu ra phù hợp với sai số tối thiểu, mô hình cần được đào tạotrên một tập dữ liệu hoặc các thông số thích hợp và theo dõi tiến trình của nó mỗikhi nó dự đoán Mạng nơron có mối quan hệ với lỗi, do đó, bất cứ khi nào các tham số thay đổi, lỗi cũng thay đổi theo Sự lan truyền ngược sử dụng kỹ thuật Gradient Descent để thay đổi các tham số trong mô hình

Để áp dụng gradient descent ta cần tính được đạo hàm của các hệ số W và bias

b với hàm loss function

Trang 17

Khi hàm f ( x , y ) là hàm nhiều biến, ví dụ f ( x , y ) = x2 + y2 Đạo hàm f với biến

x kí hiệu là ∂ ∂ x f

Quá trình này tính đạo hàm ngược lại với chiều Feedforward Với mỗi activationfunction, ta sẽ sử dụng đạo hàm của nó để thực hiện quá trình Backpropagation

Vì Loss function được tính bởi các Weights và Bias, nên muốn cải thiện độ

chính xác (giảm giá trị mất mát) thì ta phải giảm độ sai lệch của các Weights và Bias đúng theo công thức chung của thuật toán Gradient Descent:

L=L- θ *dLdL W=W-θ *dLdW B=B- θ*dLdB

Sau nhiều lần lặp lại 2 quá trình trên với nhiều điểm dữ liệu được xét, model

dần được hoàn thiện (fit) trở nên chính xác hơn

III – Xây dựng model

-Input layer: dataset

-Các layers ẩn: mỗi layer là 1 ma trận ứng với mỗi feature của dataset

-Output layer: kết quả của các phép biến đổi là label của từng dòng của datasetTiền xử lý dữ liệu

-Chuẩn bị data: chuẩn bị các tệp dữ liệu có nhãn và chia thành 2 phần: tập dữ liệudùng để huấn luyện mô hình (Train_data) và tập dữ liệu để kiểm tra tính chính xáccủa mô hình (Test_data)

-Chuyển đổi các dữ liệu đầu vào (thường là các features gồm ngôn ngữ tự nhiên) thành dữ liệu mà máy có thể đọc được (thường là dạng array)

Trang 18

Xây dựng các hàm kích hoạt cho các layer.

Tùy vào giá trị đầu ra của mỗi layer thì dùng hàm kích hoạt tương ứng; Xây dựngcông thức tính đạo hàm với mỗi activation function

#derivative of ReLU function with x>0 always is 1

Khởi tạo mô hình và các giá trị ban đầu cho mỗi tham số trong mô hình

- Khởi tạo mô hình Neural network với các layers và learning rate

- Gán giá trị ban đầu cho các Weight và Bias trong mô hình

class NeuralNetwork :

def init ( self , layers , theta )

#layers[] is an array, per value is number of nodes on that

layer #theta is learning rate

Ngày đăng: 08/05/2023, 17:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w