Tải bản đầy đủ (.pdf) (24 trang)

BÁO CÁO CUỐI KÌ TRÍ TUỆ NHÂN TẠO

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.46 MB, 24 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN HỌC
------

BÁO CÁO CUỐI KÌ
TRÍ TUỆ NHÂN TẠO

Đà Nẵng, 30/11/2018


ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN HỌC
------

BÁO CÁO CUỐI KÌ
TRÍ TUỆ NHÂN TẠO

Đà Nẵng, 30/11/2018


TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO
1/ Khái niệm
Trí tuệ nhân tạo là một ngành thuộc lĩnh vực khoa học máy tính do con
người lập trình tạo nên với mục tiêu giúp máy tính có thể tự động hóa các hành vi
thông minh như con người.
Có 2 loại:
1. Strong AI: Có thể tạo ra thiết bị có trí thông minh và các chương trình
máy tính thông minh hơn người.
2. Weak AI: Chương trình máy tính có thể mô phỏng các hành vi thông


minh của con người.
2/ Bốn quan điểm của trí tuệ nhân tạo
1. Suy nghĩ như người
2. Hành động như người
3. Suy nghĩ có lý trí
4. Hành động có lý trí
3/ So sánh lập trình hệ thống và lập trình trí tuệ nhân tạo

LẬP TRÌNH HỆ THỐNG

LẬP TRÌNH AI

Dữ liệu + Thuật toán = Chương Trình
Xử lý dữ liệu
Dữ liệu trong bộ nhớ được đánh địa chỉ
số

Tri thức + Điều khiển = Chương trình
Xử lý dữ liệu định tính
Xử lý dựa trên tri thức cho phép dùng
các thuật giải Heurictic, các cơ chế suy
diễn
Tri thức được cấu trúc hóa, để trong bộ
nhớ và làm việc theo ký hiệu
Định hướng xử lý các đại lượng định
tính, các ký hiệu tượng trưng và danh
sách
Xử lý theo chế độ tương tác

Xử lý theo các thuật toán

Định hướng xử lý theo các đại lượng,
định lượng số
Xử lý tuần tự theo mẻ

1


Không giải thích trong quá trình thực
Có giải thích hành vi của hệ thống
hiện
trong quá trình thực hiện
Kết quả chính xác, không được mắc lỗi Kết quả tốt, cho phép mắc lỗi
4/ Các lĩnh vực của trí tuệ nhân tạo
1. Tâm lý học nhận thức
2. Thần kinh học
3. Lý thuyết về hệ thống
4. Toán logic và logic học
5. Sinh học tiến hóa
6. Khoa học về hành vi bầy đàn
7. Tổ chức học
8. Thống kê học

5/ Ứng dụng của trí tuệ nhân tạo
1. Trò chơi
2. Xử lý ngôn ngữ tự nhiên và giao diện người máy
3. Lập luận và giải quyết vấn đề tự động
4. Chuẩn đoán y khoa
5. Phân tích hóa chất
6. Thiết kế kĩ thuật
7. Các kí hiệu toán học

8. Nhìn và nhận dạng
9. Xử lý âm thanh, tiếng nói
10.Cuộc sống nhân tạo

2


6/ Một số ví dụ sử dụng thành công trí tuệ nhân tạo
1. Chương trình chơi cờ trên máy Deep Blue đánh bại đại kiện tướng Kasparov
(1997)
2. Hệ chuyên gia MYCIN không thua kém chuyên gia người trong việc chuẩn
đoán bệnh
3. Máy nhận dạng mắt người tại sân bay Heathrow
4. Chương trình lập lịch và điều khiển thông minh trên xe tự hành và Robot tự
hành của NASA
5. Chương trình nhận dạng khuôn mặt trên ứng dụng facebook
6. Chiến tranh mô phỏng trên máy tính


3


MACHINE LEARNING
1/ Khái niệm
Có 2 khái niệm cơ bản
1. Machine Learning (học máy) Là một lĩnh vực nhỏ của khoa học máy tính,
nó có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được
lập trình cụ thể. (Theo Arthur Samuel)
2. Machine Learning Là 1 chương trình máy tính được nói là học hỏi từ kinh
nghiệm E từ các tác vụ T và với độ đo hiệu suất P. Nếu hiệu suất của nó áp

dụng trên tác vụ T và được đo lường bởi độ đo P tăng từ kinh nghiệm E.
(Theo giáo sư Tom Mitchell – carnegie mellon university)
2/ Các ứng dụng của machine learning
1. Xe tự lái, giảm thiểu tai nạn của google
2. Nhận diện lừa đảo
3. Quảng cáo theo thời gian thực trên các trang web và các thiết bị di động.
4. Nhận dạng qua pattern (mẫu) và hình ảnh.
 Một ứng dụng phổ biến của machine learning hiện nay là việc nhận dạng
pattern (mẫu) bởi vì nó có thể được sử dụng để nhận ra nhiều loại hình ảnh
khác nhau.
3/ Ví dụ sử dụng machine learning
Giả sử như bạn muốn máy tính xác định một tin nhắn có phải là SPAM hay không
Tác vụ T: xác định 1 tin nhắn có phải SPAM hay không?
Kinh nghiệm E: xem lại những tin nhắn đánh dấu là spam xem có những đặc tính
gì để có thể xác định nó là spam.
Độ đo P: là phần trăm số tin nhắn spam được phân loại đúng.
 Machine learning sử dụng các mô hình thống kê để "ghi nhớ" lại sự phân bố
của dữ liệu. Tuy nhiên, không đơn thuần là ghi nhớ, machine learning phải
có khả năng tổng quát hóa những gì đã được nhìn thấy và đưa ra dự đoán
cho những trường hợp chưa được nhìn thấy.
4/ Các đối tượng đang sử dụng machine learning
4


1. Các dịch vụ tài chính
2. Chính phủ
3. Chăm sóc sức khoẻ
4. Dầu khí
5. Vận tải
5/ Làm thế nào để có một hệ thống machine learning tốt ?

1. Khả năng chuẩn bị dữ liệu
2. Thuật toán – căn bản & nâng cao
3. Quy trình tự động và quy trình lặp lại
4. Khả năng scale
5. Ensemble modelinG
6/ Một số method tiêu biểu trong machine learning
1. Supervised Learning (học có giám sát) Là một kĩ thuật học máy để học tập
từ tập dữ liệu được gán nhãn cho trước. Tập dữ liệu cho trước sẽ chứa nhiều
bộ dữ liệu. Mỗi bộ dữ liệu có cấu trúc theo cặp {x, y} với x được xem là dữ
liệu thô (raw data) và y là nhãn của dữ liệu đó. Nhiệm vụ của SL là dự đoán
đầu ra mong muốn dựa vào giá trị đầu vào. Học dựa vào sự trợ giúp của con
người.
SUPERVISED LEARNING cũng được áp dụng cho 2 nhóm bài toán chính là
bài toán dự đoán (regression problem) và bài toán phân lớp (classification
problem).
2. UNSUPERVISED LEARNING (học không giám sát) là một kĩ thuật của
máy học nhằm tìm ra một mô hình hay cấu trúc bị ẩn bơi tập dữ liệu
KHÔNG được gán nhãn cho trước. Unsupervised learning khác với
supervised learning là không thể xác định trước output từ tập dữ liệu huấn
luyện được. Tùy thuộc vào tập huấn luyện kết quả output sẽ khác nhau. Máy
sẽ tự động học không cần sự trợ giúp của con người và giá trị đầu ra phụ
thuộc vào thuật toán unsupervised learning.
3. SEMISUPERVISED LEARNING (học bán giám sát)
4. REINFORCEMENT LEARNING (học tăng cường)
5


CLASSIFICATION
1/ Khái niệm
• Classification là việc sử dụng input là một tập các mẫu dữ liệu huấn luyện,

với một nhãn phân lớp cho mỗi mẫu dữ liệu. Output là mô hình (bộ phân
lớp) dựa trên tập huấn luyện và những nhãn phân lớp
• Hệ thống classification để dự đoán những nhãn phân lớp cho các bộ dữ
liệu/mẫu mới
2/ Quy trình tổng quan cho việc phân lớp
2.1 Xây dựng mô hình từ tập huấn luyện
• Mỗi bộ / mẫu dữ liệu được phân vào một lớp xác định trước.
• Lớp của một bộ / mẫu dữ liệu được xác định bởi thuộc tính gán nhãn lớp.
• Tập các bộ / mẫu dữ liệu huấn luyện-tập huấn luyện được dùng để xây dựng
mô hình
• Mô hình được biểu diễn bởi các luật phân lớp, các cây quyết định hoặc các
công thức toán học.
2.2 Sử dụng mô hình
• Kiểm tra tính đúng đắn của mô hình và dùng nói để phân lớp dữ liệu mới.
• Phân lớp cho những đối tượng mới hoặc chưa được phân lớp
• Đánh giá độ chính xác của mô hình
• Lớp biết trước của một mẫu/bộ dữ liệu đem kiểm tra
• Được so sánh với kết quả thu được từ mô hình
• Tỉ lệ chính xác = phần trăm các mẫu/bộ dữ liệu
• Được phân lớp đúng bởi mô hình trong số các lần kiểm tra
2.3 Kiểm tra dữ liệu với mô hình (make prediction)

.

Ta đưa vào các dữ liệu mới để kiểm tra trên mô hình phân lớp.

2.4 Đánh giá mô hình phân lớp và chọn ra mô hình tốt nhất
6



• Đánh giá mô hình bằng cách đánh giá mức độ lỗi của dữ liệu testing và dữ
liệu traning thông qua mô hình tìm được.
• Nếu không đạt được kết quả mong muốn thì phải thay đổi các tham số
(turning parameter) của các thuật toán học để tìm ra các mô hình tốt hơn và
kiểm tra, đánh giá lại mô hình phân lớp. Từ đó chọn ra mô hình phân lớp tối
ưu nhất cho bài toán
3/ Các thuật ngữ trong classification
1. Feature: Là các mẫu/đối tượng, bao gồm các thuộc tính(feature, attribute),
có thể được dùng trong training set hoặc testing set.
2. Sample: Là thuộc tính của các đối tượng, dùng để phân loại các đối tượng
vào các lớp(lable/class) khác nhau
3. Training Dataset: Là tập dữ liệu dùng cho việc huấn luyện máy học, có các
thông số cụ thể, và có gắn sẵn các nhãn(label/class). Training set gồm 2
phần:
• input: là những dữ liệu đầu vào. Những thuộc tính(feature, attribute)
• output: là những kết quả của mạng perceptron tương ứng với tập input.
Với bài toán phân loại thì output chính là nhãn(label/class).
4. Testing Dataset: Là tập dữ liệu độc lập với training set, được dùng để kiểm
thử độ chính xác của những mô hình máy học sau khi được huấn luyện.
Khác với training set, testing set chỉ có các giá trị input mà không có các giá
trị output, với bài toán phân loại thì output ở đây là các nhãn(label/class).
Máy tính sẽ nhận các giá trị input, xử lý rồi đưa ra các giá trị output tương
ứng cho các giá trị input.
5. Confusion matrix: Thể hiện có bao nhiêu điểm dữ liệu thực sự thuộc vào
một class, và được dự đoán là rơi vào một class.
6. Feature Selection: Giảm chiều dữ liệu, chỉ lựa chọn những thuộc tính đặc
trưng của các đối tượng để máy học.
7. Feature Reduction: Dùng phương pháp PCA chiếu kết quả từ không 1 gian
to sang không gian nhỏ để dễ dàng đưa ra những kết luận.
8. Validation: Là một tập hợp con khác của dữ liệu đầu vào mà chúng ta áp

dụng thuật toán học máy để xem chính xác cách xác định mối quan hệ giữa
các kết quả đã biết cho biến mục tiêu và các tính năng khác của tập dữ liệu.
7


9. k-fold cross validation: Là một phương pháp thống kê được sử dụng để ước
tính kỹ năng của các mô hình học máy.
10.visualization: Trực quan hóa các kết quả, ở bài toán phân lớp thường thì sẽ
trực quan bằng cách cho kết quả lên một mô hình 2D.

8


MẠNG NƠ RON NHÂN TẠO
ARTIFICIAL NEURAL NETWORKS (ANN)
1/ Khái niệm
Mạng neruron nhân tạo (ANN) là một mô hình làm việc trên máy tính dựa trên cấu
trúc và chức năng của mạng neuron sinh học, tập hợp các bộ xử lý đơn giản neuron
và nối với nhau.
2/ Mô hình tổng quan của mạng nơ ron nhân tạo

Mạng neuron nhân tạo (artificial neural netwok – ANN): là một tập hợp các bộ xử
lý rất đơn giản – neuron – và nối với nhau.
Cấu trúc và phương thức hoạt động của ANN mô phỏng tương tự mạng neuron
sinh học.
1. Input: Mỗi input tương ứng với 1 thuộc tính (attribute) của dữ liệu
(patterns). 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,…


9


2. Output: Kết quả của một ANN là một giải pháp cho một vấn đề, ví dụ như
với bài toán xem xét chấp nhận cho khách hàng vay tiền hay không thì
output là yes (cho vay) hoặc no (không cho vay).
3. Hidden Layer Gồm các nơron nhận dữ liệu input từ các nơron ở lớp (layer)
trước đó và chuyển đổi các input này cho các lớp xử lý tiếp theo. Trong một
ANN có thể có nhiều lớp ẩn
4. Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan trọng
của một ANN, 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ác trọng số (weight) của các input data để có được kết
quả mong muốn.
5. Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input
được đưa vào mỗi neuron (phần tử xử lý PE). Hàm tổng của một neuron đối
với n input được tính theo công thức sau:
Y(p) = step[ ∑𝒏𝒊=𝟏 𝑾𝒊𝑿𝒊(𝒑) − 𝜽 ]
6. Transfer Function (Hàm chuyển đổi): Hàm tổng (summation function)
của một nơron cho biết khả năng kích hoạt (activation) của nơron đó còn gọi
là kích hoạt bên trong (internal activation). Các nơron này có thể sinh ra một
output hoặc không trong ANN (nói cách khác rằng có thể output của 1 nơron
có thể được chuyển đến layer tiếp trong mạng nơron hoặc không). Mối quan
hệ giữa internal activation và kết quả (output) được thể hiện bằng hàm
chuyển đổi (transfer function).

10



3/ Thuật toán perceptron

Luật học
Bước 1: khởi tạo (w1, w2,…, wn, t)  [-0.5, 0.5]
Bước 2: kích hoạt tính kết xuất thực sự tại lần lặp p = 1
Y(p) = step[ ∑𝒏𝒊=𝟏 𝑾𝒊𝑿𝒊(𝒑) − 𝜽 ]
Bước 3: cập nhật trọng số: wi(p+1) = wi(p) + ∆wi(p)
Trong đó ∆wi(p) = a * xi(p) * e(p)
Tăng p lên 1 đơn vị và quay lại bước 2
Ví dụ
Mạch AND có 2 input và 1 output, chỉ khi input x1, x2x1, x2 bằng 1 thì output mới
bằng 1.

11


Công việc cần làm là lựa chọn(ω1,ω2,θ) sao cho thỏa mãn như hình. Ví dụ (ω1,
ω2, θ) = (0.5, 0.5, 0.7). Với parameter này, chỉ khi cả x1,x2 bằng 1 thì tổng mới >
θ và output y = 1.

Nhược điểm của thuật toán perceptron
Chỉ chạy được các ma trận tuyến tính, không giải quyết được bài toán XOR
12


4/ Thuật toán multilayer perceptron

Luật học
• Bước 1: Khởi tạo
Đặt giá trị ngẫu nhiên các trọng số và ngưỡng của mạng

• Bước 2: Kích hoạt
a) tính kết xuất thực sự của các neuron trong lớp ẩn:
Yj = sidmoid[ ∑𝒏𝒊=𝟏 𝑿𝒊(𝒑) ∗ 𝑾𝒊𝒋(𝒑) − 𝜽j ]
b) Tính kết xuất thực sự của các neuron trong lớp xuất:
Yk = sidmoid[ ∑𝒏𝒋=𝟏 𝑿𝒋𝒌(𝒑) ∗ 𝑾𝒋𝒌(𝒑) − 𝜽k ]
• Bước 3: Huấn luyện trọng số
a) Tính gradient sai số cho các neuron lớp xuất:

13


Cập nhật các trọng số của neuron lớp xuất:

b) Tính gradien sai số và cập nhật trọng số lớp ẩn

.

Bước 4: Lặp

14


APPLICATION
1/ Mô tả dữ liệu
Tập dữ liệu dùng trong project là tập data iris. Một tập dữ liệu gồm có 150 sample
chia thành 3 lớp khác nhau, mỗi lớp có 50 sample tiêu biểu. Mỗi sample có 4
feature chính và một class.
1.1 Cách phân chia dữ liệu training/testing
Từ tập iris.arff cho random dữ liệu để dữ liệu có thể được trải đều sau đó
,phân chia dữ liệu theo train dataset là 80% và phần còn lại 20% là của test

dataset.
1.2 Feature selection
1.2.1 Plot dữ liệu với 2 features
Khi thực hiện với 2 features petal length và petal width thì ta nhận được
accuracy: 77.7778%
Hiển thị dưới dạng visualize:

15


Khi thực hiện với 2 features petal length và petal width thì ta nhận được
accuracy: 93.3333%
Hiển thị dưới dạng visualize:

1.2.2 Dùng đầy đủ 4 features
Khi thực hiện với full feature thì ta nhận được accuracy: 96.6667%
Hiển thị dưới dạng visualize:

16


2/ Ứng dụng ANN cho bài toán phân lớp tập dữ liệu iris
2.1 Xác định thuật toán
Code theo multilayer perceptron
2.2 Kết quả
Kết quả với 4 features gốc
Trường hợp dùng full features với tập dữ liệu đưa vào là tập iris.arff và cho
ra kết quả báo cáo như sau:

17



2.3 View Code

18


ModelGenerator.java

19


Test.java

20


MỤC LỤC
TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO ...................................................................................................1
1/ Khái niệm .............................................................................................................................................. 1
2/ Bốn quan điểm của trí tuệ nhân tạo..................................................................................................... 1
3/ So sánh lập trình hệ thống và lập trình trí tuệ nhân tạo ...................................................................... 1
4/ Các lĩnh vực của trí tuệ nhân tạo .......................................................................................................... 2
5/ Ứng dụng của trí tuệ nhân tạo ............................................................................................................. 2
6/ Một số ví dụ sử dụng thành công trí tuệ nhân tạo............................................................................... 3
MACHINE LEARNING ..........................................................................................................................4
1/ Khái niệm .............................................................................................................................................. 4
2/ Các ứng dụng của machine learning .................................................................................................... 4

21



3/ Ví dụ sử dụng machine learning ........................................................................................................... 4
4/ Các đối tượng đang sử dụng machine learning ................................................................................... 4
5/ Làm thế nào để có một hệ thống machine learning tốt ? .................................................................... 5
6/ Một số method tiêu biểu trong machine learning ............................................................................... 5
CLASSIFICATION .................................................................................................................................6
1/ Khái niệm .............................................................................................................................................. 6
2/ Quy trình tổng quan cho việc phân lớp ................................................................................................ 6
2.1 Xây dựng mô hình từ tập huấn luyện ................................................................................................. 6
2.2 Sử dụng mô hình ............................................................................................................................. 6
2.3 Kiểm tra dữ liệu với mô hình (make prediction) ............................................................................. 6
2.4 Đánh giá mô hình phân lớp và chọn ra mô hình tốt nhất ............................................................... 6
3/ Các thuật ngữ trong classification ........................................................................................................ 7
MẠNG NƠ RON NHÂN TẠO ................................................................................................................9
ARTIFICIAL NEURAL NETWORKS (ANN) ...............................................................................................9
1/ Khái niệm .............................................................................................................................................. 9
2/ Mô hình tổng quan của mạng nơ ron nhân tạo ................................................................................... 9
3/ Thuật toán perceptron ....................................................................................................................... 11
4/ Thuật toán multilayer perceptron ...................................................................................................... 13
APPLICATION ................................................................................................................................... 15
1/ Mô tả dữ liệu ...................................................................................................................................... 15
1.1 Cách phân chia dữ liệu training/testing ........................................................................................ 15
1.2

Feature selection..................................................................................................................... 15

1.2.1 Plot dữ liệu với 2 features ...................................................................................................... 15
1.2.2 Dùng đầy đủ 4 features .......................................................................................................... 16
2/ Ứng dụng ANN cho bài toán phân lớp tập dữ liệu iris ....................................................................... 17

2.1 Xác định thuật toán....................................................................................................................... 17
2.2 Kết quả .......................................................................................................................................... 17
2.3 View Code ..................................................................................................................................... 18

22



×