Artificial Intelligence
Mục lục
Page 1
Artificial Intelligence
Mở đầu
Học máy, có tài liệu gọi là Máy học(machine learning) là một lĩnh vực của trí
tuệ nhân tạo liên quan đến việc phát triển các kĩ thuật cho phép các máy tính có
thể "học". Cụ thể hơn, học máy là một phương pháp để tạo ra các chương trình
máy tính bằng việc phân tích các tập dữ liệu. Học máy có liên quan lớn đến thống
kê, vì cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhưng khác với thống
kê, học máy tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính
toán. Nhiều bài toán suy luận được xếp vào loại bài toán NP-khó, vì thế một phần
của học máy là nghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà có thể
xử lí được.
Ngày nay, học máy ngày càng thể hiện đươc giá trị to lớn của mình trong các
ứng dụng thực tiễn. Một trong số đó chính là mạng nơron mô phỏng theo cách
hoạt động của bộ não con người. Cách ứng sử trên mạng nơron nhân tạo giống
như bộ não con người, nó chứng tỏ khả năng học, nhớ lại, và tổng quát hóa từ dữ
liệu huấn luyện.
Mạng nơron nhân tạo là công cụ tốt trong việc giải quyết các bài toán như:
hợp và phân lớp đối tượng, xấp xỉ hàm, tối ưu hóa, định lượng vector, phân cụm
dữ liệu, Nó thay thế hiệu quả các công cụ tính toán truyền thống để giải quyết các
bài toán này.
Page 2
Artificial Intelligence
Phần 1: Đặt vấn đề
1. Mạng nơron – Neural Networks
Học máy là một ngành khoa học nghiên cứu các thuật toán cho phép máy tính
có thể học được các khái niệm. Học máy (machine learning) một chương trình
máy tính được gọi là học từ tập dữ liệu D để thưc hiện một thao tác học LT –
learning task – cho trước. Tập dữ liệu thường được gọi là tập học – training set.
Phân loại: Có hai loại phương pháp học máy chính
• Học có giám sát – supervised learning: tập dữ liệu = {(, ),…, (, )} gồm
các cặp (x, y) trong đó x là dữ liệu đầu vào và y là nhãn của chúng. Với
mỗi dữ liệu đầu vào x thì sẽ quy định việc học máy theo nhãn y tương
ứng của nó.
• Học không có giám sát - supervised learning: tập dữ liệu = {,…, }
không hề có nhãn, thay vào đó thao tác học được định nghĩa bởi người
lập trình.
Người ta gọi bài toán dạng này là bài toán học không giám sát với thao
tác học LT thường đươc định nghĩa theo tính chất của bản thân dữ liệu
đầu vào x. Đôi khi chúng ta coi các bài toán dạng này giống như viêc
trích, chọn đặc trưng hay thậm chí nén dữ liệu nếu ta gặp trường hợp
tập dữ liệu đầu vào có kích thước quá lớn.
Một số bài toán học máy hay gặp:
Page 3
Artificial Intelligence
• Phân loại: Bài toán học máy này thược lớp học máy có giám sát, theo
đó lớp các nhãn có giá trị rời rạc.
• Hồi quy: cũng thuộc bài toán học có giám sát tuy nhiên các nhãn của
nó lại là miền giá trị liên tục, hay y ∈. Chẳng hạn, bài toán lọc nhiều
tín hiệu số, theo đó giá trị được gán nhãn là tập tín hiệu liên tục.
• Phân cụm: Thuộc lớp bài toán học không giám sát, chỉ dựa vào thông
tin tập dữ liệu đầu vào không có nhãn, tự động phân thành các cụm có
đặc tính giống nhau.
• Dữ liệu chuỗi: Ở cả hai dạng có giám sát và không có giám sát, theo đó
dữ liệu thường đươc biểu diễn theo chuỗi tuần tự.
Ứng dụng: Học máy có ứng dụng rộng khắp trong các ngành khoa học/sản
xuất, đặc biệt những ngành cần phân tích khối lượng dữ liệu khổng lồ. Một số ứng
dụng thường thấy như:
• Xử lý ngôn ngữ tự nhiên: xử lý văn bản, giao tiếp người – máy, …
• Nhận dạng: nhận dạng tiếng nói, chữ viết tay, vân tay, thị giác máy
(Computer Vision) …
• Tìm kiếm
• Chẩn đoán trong y tế: phân tích ảnh X-quang, các hệ chuyên gia chẩn
đoán tự động.
• Tin sinh học: phân loại chuỗi gene, quá trình hình thành gene/protein
• Vật lý: phân tích ảnh thiên văn, tác động giữa các hạt …
• Phát hiện gian lận tài chính (financial fraud): gian lận thẻ tỉn dụng
Page 4
Artificial Intelligence
• Phân tích thị trường chứng khoán (stock market analysis)
• Chơi trò chơi: tự động chơi cờ, hành động của các nhân vật ảo
1.1 Mô hình một nơron sinh học:
Phần tử xử lý cơ bản của một mạng nơron sinh học là một nơron, phần tử
này có thể chia làm ba thành phần cơ bản như sau: dendrites, soma, axon, và
synapses.
• Dendrites: là phần nhận tín hiệu đầu vào.
• Soma: là hạt nhân.
• Axon: là phần dẫn ra tín hiệu xử lý.
Synapses: là đường tín hiệu điện hóa giao tiếp giữa các nơron.
Kiến trúc cơ sở này của bộ não con người có một vài đặc tính chung. Một
cách tổng quát, thì một nơron sinh học nhận đầu vào từ các nguồn khác nhau, kết
hợp chúng tại với nhau, thực thi tổ hợp phi tuyến chúng để cho ra kết quả cuối
cùng ở đầu ra. Hình 1.1 chỉ ra mối quan hệ giữa ba phần tử của một nơron sinh
học.
Hình 1: Một nơron sinh học
Page 5
Artificial Intelligence
1.2 Cấu trúc và mô hình của một nơron nhân tạo:
Để mô phỏng tế bào thần kinh trong máy tính, người ta thường dùng mô
hình chuẩn [MP88] đươc biểu diễn bởi hình số 2:
Hình 2: Mô phỏng tế bào thần kinh trong máy tính
Giải thích các thành phần cơ bản:
• Tập các đầu vào: Là các tín hiệu vào của nơron, các tín hiệu này
thường được đưa vào dưới dạng một vector m chiều.
• Tập các liên kết (các trọng số): Mỗi liên kết được thể hiện bởi một
trọng số (thường được gọi là trọng số liên kết). Trọng số liên kết
giữa tín hiệu vào thứ j cho nơron i thường được ký hiệu là w
ij
. Thông
thường các trọng số này được khởi tạo ngẫu nhiên ở thời điểm khởi
tạo mạng và được cập nhật liên tục trong quá trình học mạng.
• Bộ tổng (Hàm tổng): Thường dùng để tính tổng của tích các đầu vào
với trọng số liên kết của nó.
• Ngưỡng: Ngưỡng này thường được đưa vào như một thành phần của
hàm truyền.
• Hàm truyền: Hàm này dùng để giới hạn phạm vi đầu ra của mỗi
nơron. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho.
Page 6
Artificial Intelligence
Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi
tuyến. Việc lựa chọn hàm truyền tùy thuộc vào từng bài toán và kinh
nghiệm của người thiết kế mạng.
• Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa
một đầu ra.
Về mặt toán học, công thức biểu diễn đầu ra
y
của một tế bào thần kinh
như sau:
y
= f(x.w + b)
trong đó: x
1
, x
2
, …x
m
là các tín hiệu đầu vào, còn w
1
, w
2
,…,w
m
là các
trọng số kết nối của nơron thứ i, f là hàm truyền, b là một ngưỡng,
y
là tín
hiệu đầu ra của nơron.
Như vậy, tương tự như nơron sinh học, nơron nhân tạo cũng nhận các tín
hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các
tích thu được rồi gửi kết quả đến hàm truyền), và cho một tín hiệu đầu ra (là
kết quả của hàm truyền).
Hàm truyền có thể có các dạng sau:
• Hàm bước
<
≥
=
00
01
xkhi
xkhi
y
• Hàm thuần tuyến tính:
y
=
x
• Hàm sigmoid:
x−
+
=
e
y
1
1
• Hàm tanh:
1
1
2
2
+
−
=
x
x
e
e
y
Page 7
Artificial Intelligence
• Hàm logistic:
x
β
−
+
=
e
y
1
1
với β > 0
• Hàm tanh-signmoid:
1
1
2
2
+
−
=
x
x
β
β
e
e
y
với β > 0
1.3 Mạng nơron nhân tạo:
Theo y học, trong bộ não con người có khoảng 100 tỷ tế bào thần
kinh.Chúng liên kết với nhau thành bó, gói và các vùng có chức năng khác
nhau. Vậy mạng nơron nhân tạo cũng phải biểu diễn nhiều nơron và liêu kết
chúng lại với nhau. Người ta đôi khi gọi các kiểu liên kết này là kiến trúc
mạng nơron. Có rất nhiều mạng nơron đặc trưng sau, tuy nhiên chúng ta sẽ chỉ
xem xét và minh học mạng nơron sau:
• Mạng nơron tự tổ chức theo luật học Kohonen
Page 8
Artificial Intelligence
2. Mạng nơron tự tổ chức theo luật học Kohonen
Mạng nơron theo luật học Kohonen giúp cho mạng học không giám sát. Theo
đó chúng ta sẽ có một tập hợp dữ liệu không có dán nhãn = {,…, } với ∈. Chỉ
nhớ luật học tương tác giữa các nơron tương ứng dữ liệu x xuất hiện ở đầu vào,
mạng nơron có thể tự tổ chức (Self-Organizing Map – SOM) để học đặc trưng của
tập dữ liệu đầu vào.
Thông thường người ta có thể dùng mạng SOM trong việc nén dữ liệu, đồng
thời lưu trữ thông tin về việc nén dữ liệu bởi các nút đầu ra – tương ứng với các
nhóm đặc trưng của dữ liệu đầu vào. Điểm đặc biệt là luật học trực tuyến từng dữ
liệu đầu vào cập nhật đơn giản. Ta không cần phải lưu trữ toàn bộ tập dữ liệu đầu
vào , các trọng số trong mạng nơron sẽ tự động nhớ dữ liệu đã học vào.
2.1 Kiến trúc mạng SOM
Mạng nơron tự tổ chức chỉ bao gồm 2 lớp mạng:
• Lớp vào: gồm n nơron đầu ra.
• Lớp ra: có số nơron do người sử dụng tự định nghĩa, mỗi nơron sẽ
tương ứng với một vùng của không gian vectơ đầu vào
Chúng ta sẽ sử dụng kí hiệu để chỉ nơron của lớp đầu ra. Như vậy mỗi nơron
đầu ra sẽ là tích vô hướng = x . với , đồng thời i = 1,…, H và j = 1,…, C trong đó
H,C lần lượt là số hàng số cột của lớp noron đầu ra.
Page 9
Artificial Intelligence
Hình 3: Kiến trúc mạng nơron tự tổ chức SOM
2.2 Giải thuật học của mạng tư tổ chức SOM
Giải thuật học của mạng tự tổ chức SOM gồm 6 bước cơ bản sau:
1. Khởi tạo giá trị các trọng số , có thể lấy ngẫu nhiên chính HC dữ liệu
thuộc .
2. Lấy tuần tự các giá trị của dữ liệu x trong tập dữ liều đầu vào .
3. Mọi nơron thuộc lớp đầu ra được tính khoảng cách || - x|| xem trọng
số nào là gần nhất.
4. Xác định lại các nơron láng giềng của nơron gần nhất này theo bán
kính vốn được khởi tạo giá trị từ trước với giá trị lớn.
5. Các trọng số của nơron hàng xóng nơron gần nhất cũng được cập
nhật sao cho nó giống với vectơ đầu vào x.
6. Quay lại bước 2.
Riêng bước 4 trong giải thuật trên được chia làm 2 bước nhỏ hơn như sau:
1. Để xác định lại các nơron hàng xóm của nơron gần nhất vừa chọn,
chúng ta dùng hàm sau để xác định bán kính hàng xóm tính từ nơron
này. Nghĩa là chỉ có nơron nằm trong bán kính này thì trong số mới
được cập nhật:
.exp
Với: t = 1, 2, 3…là bước lặp
là bán kính ban đầu,
Page 10
Artificial Intelligence
là hằng số theo vòng lặp,
với T là tổng số vòng lặp
2. Các hàng xóm trong vùng bán kính đươc cập nhật trong số sao cho
giống với vectơ đầu vào x hơn theo công thức:
Trong đó: L(t) = , với giá trị khởi tạo . Rõ ràng là đã tiến gần x theo
một tỉ lệ là L(t).
2.3 Ý nghĩa của mạng nơron tự tổ chức
Nhờ luật học Kohonen, mạng nơron đã tự tổ chức phân thành các khu có trọng
số tương tự nhau trong không gian nơron thuôc lớp đầu ra.
Dưới đâu là một ví dụ về ứng dụng của mạng nơron tự tổ chức giúp phân chia
thị trường đóng tàu thế giới thành các nhóm nước.
Page 11
Artificial Intelligence
Kết quả sử dụng SOM để phân tích bảng dữ liệu trên hình chỉ ra rằng, thị
trường đóng tàu thế giới được chia thành sáu nhóm. Trong đó, ba quốc gia đang
dẫn đầu thị trường đóng tàu thế giới là Hàn Quốc, Nhật Bản và Trung Quốc được
nhóm thành ba nhóm gần nhau.
3 . Đặt vấn đề
Tự tổ chức trong mạng nơron là một trong những chủ đề cuốn hút trong mạng
nơron. Một mạng nơron như vậy có thể tự tìm ra các quy luật và các tương quan,
các giá trị nhập vào và dự đoán các kết quả tiếp theo. Các nơron của mạng thông
qua quá trình áp dụng luật học Kohonen có thể nhận ra, tách ra một nhóm các đối
tượng đầu vào tương đương nhau.
Page 12
Artificial Intelligence
Trong phần tiếp theo, chúng ta có thể xây dựng nên một ứng dụng cụ thể để
minh họa khả năng phân cụm dữ liệu đầu vào bằng mạng nơron Kohonen. Việc
thi hành mạng nơron Kohonen có thể được thay thế bởi một thuật toán tương ứng
mà dễ dàng thi hành, và luôn luôn được sử dụng trong các ứng dụng của mạng
nơron Kohonen.
Page 13
Artificial Intelligence
Phần 2: Giải quyết vấn đề
Trong phần này sẽ nói rõ quá trình mô phỏng một chương trình thi hành luật
học Kohonen để phân cụm dữ liệu đầu vào, có thể minh họa bằng hình ảnh trực
quan sinh động.
Mạng nơron tự tổ chức chỉ bao gồm 2 lớp mạng:
• Lớp vào: gồm n nơron đầu ra.
• Lớp ra: có số nơron do người sử dụng tự định nghĩa, mỗi nơron sẽ
tương ứng với một vùng của không gian vectơ đầu vào
Vì vậy chúng ta sẽ xây dựng nên cả hai lớp mạng: lớp vào và lớp ra.
1. Lớp vào – InputClass
InputClas là lớp thực thi lớp đầu vào của mạng Kohonen, vì vậy các đối tượng
do lớp này tạo ra chỉ chứa thông tin của dữ liệu đầu vào, bao gồm thông tin về số
chiều dữ liệu đầu vào và dữ liệu cụ thể của nó.
public class InputClass {
private int n = 0;
double []array;
public void setN(int n) {
this.n = n;
}
public int getN() {
return this.n;
}
public void setArray(int n, double arr[]) {
Page 14
Artificial Intelligence
this.n = n;
this.array = new double[n];
System.arraycopy(arr, 0, this.array, 0, n);
}
}
2. Lớp ra – OutputClass
OutputClas là lớp thực thi lớp đầu ra của mạng Kohonen, vì vậy các đối tượng
do lớp này tạo ra chứa thông tin của dữ liệu đầu ra, bao gồm thông tin về số chiều
dữ liệu đầu vào và dữ liệu cụ thể của nó. Ngoài ra, các nơron lớp ra trong quá trình
thực thi luật học Kohonen sẽ tương tác với các nơron lớp vào để xác định khoảng
cách(bước 3), tương tác với các nơron trong cùng lớp ra tính bán kính của nó với
nơron gần nhất(bước 4) và cập nhật trọng số nếu nằm trong bán kính quy
định(bước 5). Vì vậy cần phải co thêm 3 phương thức này ở lớp ra.
public double tinhKhoangCachDauVao(InputClass ipc){
double tong = 0;
for(int i = 0; i < n; i++){
tong += java.lang.Math.pow(this.array[i] - ipc.array[i], 2);
}
return java.lang.Math.sqrt(tong);
}
public double tinhDoDai(){
double tong = 0;
for(int i = 0; i < n; i++){
tong += java.lang.Math.pow(this.array[i], 2);
}
return java.lang.Math.sqrt(tong);
Page 15
Artificial Intelligence
}
public void capNhatTrongSo(InputClass ipc, int t, double lamda){
double l;
l = 0.5 * java.lang.Math.exp((double)(-t)/lamda);
for(int i = 0; i < n; i++){
array[i] = array[i] + l*(ipc.array[i] - this.array[i]);
}
Ngoài ra để minh họa bằng hình ảnh, chúng ta cần xây dựng nên môt số lớp –
class và phương thức khác nữa. Tuy nhiên trong giới hạn của phần này em đã
không trình bày tới.
Page 16
Artificial Intelligence
Phần 3: Kết quả đạt được
Trong khoảng thời gian qua, sau quá trình phân tích, tìm hiểu và xây dựng nên
chương trình mô phỏng quá trình phân cụm dữ liệu bằng hình ảnh, dựa vào luật
học Kohonen, thì em đã hoàn thành một phần mềm nhỏ thỏa mãn yêu cầu trên.
• Giao diện khi bắt đầu chạy chương trình
Page 17
Artificial Intelligence
• Khởi tạo các giá trị lớp vào và lớp ra ban đầu
Các giá trị lớp vào và lớp ra ban đầu được khởi tạo và lưu vào 2 file
input.txt và output.txt trong cùng thư mục của chương trình.
• Quá trình thực thi việc mô phỏng
Page 18
Artificial Intelligence
Nhập dữ liệu đầu vào và đầu ra:
Chạy chương trình mô phỏng:
Kết quả thu được sau khi chạy chương trình: dữ liêu đầu ra đươc phân
cụm và thể hiện trên hình ảnh bằng màu sắc sáng tối khác nhau.
Page 19
Artificial Intelligence
Page 20
Artificial Intelligence
Phần 4: Kết luận
• Kiến thức đã tìm hiểu được
Nắm được kiến thức cơ bản của mạng nơron nhân tạo và mạng nơron
Kohonen.
Nắm được cách xây dựng nên một chương trình cụ thể minh họa mạng
nơron tự học theo luât Kohonen.
Phát triển thành công chương trình minh họa sử dụng hình ảnh trực
quan bằng màu sắc để nhận biết toàn bô quá trình học theo luật
Kohonen của mạng nơron.
Chương trình phân cụm dữ liệu với 100% dữ liệu đầu vào bất kỳ.
• Hướng phát triển nghiên cứu
Đề tài có thể phát triển cho việc phân loại dữ liệu đầu vào, hoặc trích rút các
đặc trưng cơ bản của dữ liêu đầu vào thể hiện trên bộ dữ liêu đầu ra. Tuy nhiên để
làm được điều này phải là cả một quá trình tìm hiểu và nghiên cứu lâu dài. Do thời
gian có hạn nên đề tài mới chỉ trình bày ở mức độ đơn giản đó là phân cụm các dữ
liệu đầu vào trong không gian .
Page 21
Artificial Intelligence
Tài liệu tham khảo
1. Teuvo Kohonen,Self-Organizing Maps, Third Edi!on, Springer, Heidelberg,
2001
2. V. Rao and H. Rao, C++ Neural Networks and Fuzzy Logic, Second Edi!on,
MIS Press, NewYork, 1995
3. />4. />kohonen-hay-mang-noron-tu-to-chuc-som 1301716.html
5. W. Frawley and G. Piatetsky-Shapiro and C. Matheus, Knowledge
Discovery in Databases: An Overview. AI Magazine, Fall 1992, pages 213-228
Page 22