CHƢƠNG 1 : GIỚI THIỆU TỔNG QUAN VỀ HỌC MÁY VÀ HỌC SÂU
2.1. Tổng quan về bài tốn dự báo
2.1.3. Mơ hình trong bài tốn dự báo
Hình 2.3: Mơ hình trong các bài tốn Machine learning
Phần lớn các mơ hình machine learning cĩ thể đƣợc minh hoạ trong Hình 2.3. Cĩ hai bƣớc (phase) lớn trong mỗi bài tốn machine learning là bƣớc huấn luyện (training phase) và bƣớc kiểm thử (test phase) [2]. Bƣớc huấn luyện sẽ chỉ dùng dữ liệu huấn luyện, bƣớc kiểm thử sẽ chỉ dùng dữ liệu trong tập kiểm thử
Bƣớc 1: Pha huấn luyện (Tranning phase)
Cĩ hai khối cĩ nền màu lục cần đƣợc thiết kế:
Khối Trích chọn đặc trƣng (Feature Extraction), cĩ nhiệm vụ tạo ra một vector đặc trƣng cho mỗi điểm dữ liệu đầu vào. Vector đặc trƣng này thƣờng cĩ kích thƣớc nhƣ nhau, bất kể dữ liệu đầu vào cĩ kích thƣớc nhƣ thế nào.
Đầu vào của khối Trích chọn đặc trƣng cĩ thể là các yếu tố sau:
- Dữ liệu huấn luyện đầu vào ở trạng thái thơ (raw training input): Dữ liệu
thơ bao gồm tất cả các thơng tin ta biết về dữ liệu. Ví dụ: dữ liệu thơ của một ảnh là giá trị của từng pixel; của một văn bản là từng từ, từng câu; của một file âm thanh là một đoạn tín hiệu; với bài tốn dự báo thời tiết, dữ liệu thơ là thơng tin về hƣớng giĩ, nhiệt độ, độ ẩm, ... Dữ liệu thơ này thƣờng khơng ở dạng vector và khơng cĩ số
24
chiều nhƣ nhau. Thậm chí cĩ thể cĩ số chiều nhƣ nhau nhƣng số chiều quá lớn, chẳng hạn một bức ảnh màu pixel sẽ cĩ số pixel là đã là (ảnh màu thƣờng cĩ ba channel: red, green, blue – RGB). Đây là một con số quá lớn, khơng lợi cho lƣu trữ và tính tốn.
- Dữ liệu huấn luyện đầu ra: Trong các bài tốn unsupervised learning, ta
khơng biết output nên hiển nhiên sẽ khơng cĩ giá trị này. Trong các bài tốn supervised learning, cĩ khi dữ liệu này cũng khơng đƣợc sử dụng. Ví dụ, nếu raw input đã cĩ cùng số chiều rồi nhƣng số chiều quá lớn, ta muốn giảm số chiều của nĩ thì cách đơn giản nhất là chiếu vector đĩ xuống một khơng gian cĩ số chiều nhỏ hơn bằng cách lấy một ma trận ngẫu nhiên nhân với nĩ vào bên trái. Ma trận này thƣờng là ma trận béo, tức cĩ số hàng ít hơn số cột, để đảm bảo số chiều thu đƣợc nhỏ hơn số chiều ban đầu. Việc làm này mặc dù làm mất đi thơng tin, trong nhiều trƣờng hợp vẫn mang lại hiệu quả vì đã giảm đƣợc lƣợng tính tốn ở phần sau. Đơi khi ma trận chiếu khơng phải là ngẫu nhiên mà cĩ thể đƣợc học dựa trên tồn bộ dữ liệu thơ ban đầu. Trong nhiều trƣờng hợp khác, dữ liệu output của tập huấn luyện cũng đƣợc sử dụng để tạo ra bộ trích chọn đặc trƣng. Trong bài tốn classification, việc giữ lại nhiều thơng tin khơng quan trọng bằng việc giữ lại các thơng tin cĩ ích cho bài tốn. Ví dụ, giả sử dữ liệu thơ là các hình vuơng và hình tam giác cĩ màu đỏ và xanh. Trong bài tốn phân loại đa giác, nếu các nhãn là tam giác và vuơng, ta khơng quan tâm tới màu sắc mà chỉ quan tâm tới số cạnh của đa giác. Ngƣợc lại, trong bài tốn phân loại màu, các nhãn là xanh và đỏ, ta khơng quan tâm tới số cạnh mà chỉ quan tâm đến màu sắc.
- Các thơng tin biết trước của dữ liệu: Ngồi dữ liệu huấn luyện, các thơng
tin biết trƣớc ngồi lề cũng cĩ tác dụng trong việc xây dựng bộ trích chọn đặc trƣng. Chẳng hạn, cĩ thể dùng các bộ lọc để giảm nhiễu nếu dữ liệu là âm thanh, hoặc dùng các bộ dị cạnh để tìm ra cạnh của các vật thể trong dữ liệu ảnh. Nếu dữ liệu là ảnh các tế bào và ta cần đƣa ảnh về kích thƣớc nhỏ hơn, ta cần lƣu ý về độ phân giải của tế bảo ảnh trong kích thƣớc mới. Ta cần xây dựng một bộ trích chọn đặc trƣng phù hợp với từng loại dữ liệu. [3]
25
Sau khi các tham số mơ hình của bộ feature extraction đƣợc thiết kế, dữ liệu thơ ban đầu đƣợc đƣa qua và tạo ra các vector đặc trƣng tƣơng ứng đƣợc gọi là đặc trƣng đã trích xuất (Extracted feature). Những đặc trƣng này sẽ đƣợc đƣa vào huấn luyện các thuật tốn machine learning chính nhƣ phân loại, phân cụm, hồi quy, ... trong khối màu lục phía sau.
Bƣớc 2: Pha kiểm tra (Testing phase)
Khi cĩ dữ liệu thơ mới, ta sử dụng bộ trích chọn đặc trƣng đã tìm đƣợc ở trên để tạo ra vector đặc trƣng ứng với dữ liệu thơ đĩ. Vector đặc trƣng này đƣợc đƣa vào thuật tốn chính đã tìm đƣợc để đƣa ra quyết định.
Đối với các bài tốn sử dụng mạng học sâu cũng trải qua các bƣớc nhƣ trên tuy nhiên đối với một số thuật tốn cao cấp hơn, việc xây dựng bộ trích chọn đặc trƣng và các thuật tốn chính (classification, clustering, ...) cĩ thể đƣợc thực hiện cùng lúc với nhau thay vì từng bƣớc nhƣ trên. Các mơ hình đĩ cĩ tên gọi chung là end-to-end. Với sự phát triển của deep learning trong những năm gần đây, ngƣời ta cho rằng các hệ thống end-to-end (từ đầu đến cuối) mang lại kết quả tốt hơn nhờ vào việc hai khối phía trên đƣợc huấn luyện cùng nhau, bổ trợ lẫn nhau cùng hƣớng tới mục đích cuối cùng. Thực tế cho thấy, các phƣơng pháp state-of-the-art (các phƣơng pháp hiệu quả nhất) thƣờng là các mơ hình end-to-end
2.1.4. Kỹ thuật xây dựng đặc trưng
Mỗi điểm dữ liệu trong các bài tốn machine learning thƣờng đƣợc biểu diễn bằng một vector đƣợc gọi là vector đặc trƣng (feature vector). Hơn nữa, trong cùng một bài tốn, các feature vector của tất cả các điểm thƣờng cĩ kích thƣớc nhƣ nhau. Điều này là cần thiết vì các phép tốn trong mơ hình (cộng, nhân ma trận, vector) yêu cầu đầu vào cĩ cùng kích thƣớc [2]. Khi đĩ, tồn bộ dữ liệu cĩ thể đƣợc lƣu trong một ma trận mà mỗi hàng hoặc mỗi cột là feature vector của một điểm dữ liệu. Tuy nhiên, trên thực tế, dữ liệu thƣờng ở dạng thơ (raw data) với kích thƣớc khác nhau. Hoặc thậm chí khi kích thƣớc của các điểm là nhƣ nhau, việc lựa chọn,
26
tính tốn đặc trƣng nào phù hợp cho mỗi bài tốn là nhiệm vụ quan trọng trƣớc tiên cần đƣợc giải quyết.
Với các bài tốn thị giác máy tính (computer vision), các bức ảnh thƣờng là các ma trận hoặc tensor với kích thƣớc khác nhau. Trong bài tốn nhận dạng vật thể trong ảnh, đơi khi ta cần làm thêm một bƣớc nữa là xác định vị trí vật thể (object detection), tức là tìm các khung chứa vật thể cần dự đốn [2]. Ví dụ, trong bài tốn nhận dạng khuơn mặt, ta cần tìm đƣợc vị trí các khuơn mặt trong ảnh và cắt ra các khuơn mặt đĩ trƣớc khi làm các bƣớc tiếp theo. Ngay cả khi đã xác định đƣợc các khung chứa các khuơn mặt, ta vẫn phải làm rất nhiều việc vì hình ảnh của khuơn mặt cịn phụ thuộc vào gĩc chụp, ánh sáng, … và rất nhiều yếu tố khác nữa.
Các bài tốn xử lý ngơn ngữ tự nhiên (natural language processing–NLP) cũng cĩ khĩ khăn tƣơng tự khi độ dài của các văn bản là khác nhau, thậm chí cĩ những từ rất hiếm gặp hoặc khơng cĩ trong từ điển [2]. Cũng cĩ khi thêm một vài từ vào văn bản mà nội dung của văn bản khơng đổi hoặc hồn tồn mang nghĩa ngƣợc lại. Hoặc cùng là một câu nĩi nhƣng tốc độ, âm giọng của mỗi ngƣời là khác nhau, tại các thời điểm khác nhau là khác nhau.
Khi làm việc với các bài tốn deep learning trong thực tế, chúng ta hầu nhƣ chỉ nhận đƣợc dữ liệu thơ chƣa qua chỉnh sửa, sàng lọc. Ngồi ra, cịn phải tìm cách loại bỏ những dữ liệu nhiễu và để đƣa dữ liệu thơ với kích thƣớc hay số chiều khác nhau về cùng một chuẩn (cùng là các vector hoặc ma trận). Dữ liệu sau khi làm sạch phải đảm bảo tồn vẹn đƣợc những thơng tin đặc trƣng của dữ liệu thơ. Khơng những thế, tùy vào từng bài tốn, ta cần thiết kế những phép biến đổi để cĩ những đặc trƣng phù hợp. Quá trình quan trọng này đƣợc gọi là trích chọn đặc trƣng (feature engineering hay feature extraction) và nĩ trải qua 3 bƣớc chính: Lấy dữ liệu thơ, lựa chọn đặc trƣng và giảm chiều dữ liệu.
Bƣớc 1: Lấy dữ liệu thơ
Xét một bài tốn phân loại các bức ảnh xám mà mỗi bức ảnh đã cĩ kích thƣớc cố định là pixel. Cách đơn giản nhất để tạo ra vector đặc trƣng cho bức
27
ảnh này là kéo dài ma trận các pixel thành một vector cĩ phần tử, hay đặc trƣng. Khi đĩ, giá trị mỗi đặc trƣng sẽ là một giá trị của một pixel trong bức ảnh ban đầu, thứ tự khơng quan trọng. Kỹ thuật này cịn đƣợc gọi là vector hố
(vectorization).
Việc làm đơn giản này đã làm mất thơng tin về khơng gian (spatial information) giữa các điểm ảnh vì các pixel gần nhau theo phƣơng ngang trong bức ảnh ban đầu cĩ thể khơng cịn gần nhau trong vector đặc trƣng mới nữa. Tuy nhiên, trong nhiều trƣờng hợp, kỹ thuật này vẫn mang lại kết quả khả quan.
Bƣớc 2: Lựa chọn đặc trƣng
Giả sử rằng các điểm dữ liệu cĩ số đặc trƣng khác nhau (do kích thƣớc dữ liệu khác nhau hay do một số đặc trƣng mà điểm dữ liệu này cĩ nhƣng điểm dữ liệu kia lại khơng thu thập đƣợc), và số lƣợng đặc trƣng là cực lớn. Chúng ta cần chọn ra một số lƣợng nhỏ hơn các đặc trƣng phù hợp với bài tốn.
Bƣớc 3: Giảm chiều dữ liệu
Một phƣơng pháp khác thƣờng đƣợc dùng là làm giảm số chiều dữ liệu (dimensionality reduction) để giảm bộ nhớ và khối lƣợng tính tốn. Việc giảm số chiều này cĩ thể đƣợc thực hiện bằng nhiều cách, trong đĩ chiếu ngẫu nhiên (random projection) là cách đơn giản nhất. Trong phƣơng pháp này, một ma trận chiếu (projection matrix) ngẫu nhiên đƣợc chọn, thƣờng là một ma trận béo (Số cột nhiều hơn số hàng), để nhân vào bên trái của từng vector đặc trƣng ban đầu để đƣợc các vector đặc trƣng cĩ số chiều thấp hơn. Cụ thể, giả sử vector đặc trƣng ban đầu là , nếu ta chọn một ma trận chiếu với , vector mới
cĩ số chiều nhỏ hơn số chiều của vector ban đầu.
Việc chọn một ma trận chiếu ngẫu nhiên đơi khi mang lại kết quả tệ khơng mong muốn vì thơng tin cĩ thể bị mất đi quá nhiều. Một phƣơng pháp đƣợc sử dụng nhiều để tối thiểu lƣợng thơng tin mất đi cĩ tên là principal component analysis [8].Tuy nhiên Feature engineering khơng nhất thiết phải làm giảm số chiều dữ liệu, đơi khi vector đặc trƣng cĩ thể cĩ cĩ kích thƣớc lớn hơn dữ liệu thơ ban đầu.
28
2.2. Giới thiệu về mạng Neural
Mạng neural nhân tạo - Artificial Neural Network (ANN) gọi tắt là mạng neural, mạng neural network. Đây là một mơ hình xử lý thơng tin mơ phỏng theo cách thức xử lý thơng tin của các hệ neural sinh học. Nĩ bao gồm một lƣợng lớn các phần tử (phần tử xử lý hay neural) kết nối với nhau thơng qua các kiên kết (gọi là trọng số liên kết) làm việc nhƣ một hệ thống nhất để giải quyết vấn đề nào đĩ. ANN giống nhƣ con ngƣời, đƣợc học bởi kinh nghiệm, lƣu kinh nghiệm hiểu biết và sử dụng trong những tình huống phù hợp.
ANN đƣợc giới thiệu vào năm 1943 bởi nhà thần kinh học Warren McCulloch và nhà logic học Walter Pits. Họ đã tiến hành xây dựng một mạng Neural đơn giản bằng các mạch điện. Kết quả củ các mơ hình này là các hàm logic đơn giản. Chẳng hạn nhƣ “a OR b” hay “a AND b”. Tuy nhiên, với hạn chế kỹ thuật trong thời gian này chƣa cho phép họ nghiên cứu đƣợc nhiều.
Những năm gần đây mơ phỏng ANN khơng chỉ dừng lại ở việc nghiên cứu lý thuyết. Việc ứng dụng mạng Neural ngày càng hồn thiện hơn. Các nghiên cứu ứng dụng đã đƣợc thực hiện trong nhiều ngành nhƣ: điện, điện tử, kỹ thuật chế tạo, y học, quân sự, ... và mới nhất là các nghiên cứu ứng dụng trong các bài tốn dự báo.
Hiện tại ở Việt Nam, việc nghiên cứu và ứng dụng ANN vào bài tốn dự báo mới chỉ bắt đầu trong vài năm gần đây.
Cấu trúc và hoạt động của mạng Neural
Cấu trúc của mạng Neural
Mạng neural nhân tạo cĩ chức năng tƣơng tự nhƣ chức năng đơn giản nhất của các neural sinh học. Đĩ là tích lũy (ghi nhớ) những tri thức đƣợc học về các sự vật đã biết, phân biệt chúng mỗi khi gặp lại. Chức năng đƣợc hình thành thơng qua một chuỗi liên tiếp các quá trình xử lý thơng tin của các neural trong mạng. Dựa vào mơ phỏng neural sinh học, neural nhân tạo cũng thực hiện nhiệm vụ của mình thơng qua các thao tác nhận đầu vào từ các neural trƣớc, xử lý đầu vào bằng cách nhân mỗi đầu vào này với trọng số liên kết tƣơng ứng và tính tổng các tích thu đƣợc rồi
29
đƣa ra một hàm truyền. Sau đĩ gửi kết quả cho các neural tiếp theo hoặc đƣa ra output. Cứ nhƣ vậy, các neural này hoạt động phối hợp nhau tạp thành hoạt động chính của mạng neural. [4]
Quy trình xử lý thơng tin của một neural qua cấu trúc thể hiện ở hình 2.1
Hình 2.1: Cấu trúc một neural
xi: các tín hiệu input f(.) : hàm hoạt động wkp: trọng số của từng input yk: kết xuất của Neurol Trong hình vẽ trên:
(x1,x2,.......xp) với p≥1: là các tín hiệu đầu vào của neural. Các tín hiệu này cĩ thể là đầu ra của neural trƣớc đĩ hoặc đầu vào ban đầu của mạng và thƣờng đƣợc đƣa vào dƣới dạng một vector p chiều.
wk1,wk2,....wkp là tạo các trọng số liên kết của từng neural k với p đầu vào tƣơng ứng với (x1,x2,.......xp). Thơng thƣờng, các trọng số này đƣợc khởi tạo một cách 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 của mạng.
là hàm tổng trên một neural, dùng dể tính tổng các giá trị kích hoạt trên neural đĩ. Thơng thƣờng, đây là tổng các tích giữa đầu vào và trọng số liên kết tƣơng ứng của neural.
30
uk là tổng các giá trị kích hoạt lên neural thứ k, giá trị này là đầu ra của hàm tổng.
f(.) là hàm truyền, cịn gọi là hàm kích hoạt (activation function). Hàm
truyền đƣợc dùng để giới hạn vi đầu ra của mỗi neural. Đối số của hàm lá giá trị hàm tổng và ngƣỡng bk. Thơng thƣờng, phạm vi đầu ra của mỗi neural đƣợc giới hạn trong đoạn [0,1] hoặc [1,-1]. Nhƣ vậy miền giá trị của các hàm kích hoạt cũng là một trong hai giai đoạn trên.
yk là tín hiệu đầu ra của neural thứ k, mỗi neural thƣờng cĩ một đầu ra và tối đa là một đầu ra. Giá trị yk đƣợc tính theo cơng thức
yk = f(uk + bk) với uk =
Nhƣ vật, sau q trình xử lý của neural trên tập các tín hiệu đầu vào, ta sẽ thu đƣợc một tin hiệu đầu ra duy nhất.
Hoạt động của mạng neural
Một mạng neural cĩ thể cĩ nhiều lớp/tầng mạng và ít nhất cĩ một lớp gọi là lớp đầu ra. Mỗi lớp cĩ thể cĩ một hoặc nhiều neural. Cấu trúc tổng quát của mạng neural thể hiện trong hình 2.2 dƣới đây
Hình 2.2: Cấu trúc chung của một mạng neural
31
Đầu vào của mạng vector cĩ kích thƣớc p: ( x1, x2 , ....,xp) và đầu ra là vector a1, a2, ..., aq cĩ kích thƣớc q. Trong bài tốn phân loại mẫu, kích thƣớc đầu ra của mạng chính là số lớp cần phân loại.
Lớp ẩn đầu tiên là lớp H1, sau đĩ đến lớp ẩn thứ hai H2, tiếp tục nhƣ vậy đến lớp ẩn cuối cùng rồi lớp đầu ra O.
Các neural trong lớp cĩ cấu trúc nhƣ trên hình 2.1 liên kết giữa các neural
giữa các lớp cĩ thể là liên kết đầy đủ mỗi neural thuộc lớp sau liên kết với tất cả các neural ở lớp trƣớc nĩ) hoặc liên kết chọn lọc (mỗi neural thuộc lớp sau liên kết với tất cả neural ở lớp trƣớc đĩ).
Đầu ra của lớp trƣớc chính là đầu vào của lớp ngay sau nĩ. Hàm truyền tại các neural khơng nhất thiết giống nhau.
Với cấu trúc nhƣ vậy, hoạt động của mạng neural diễn ra nhƣ sau: Đầu tiên vector đầu vào đƣợc lan truyền qua lớp H1. Tại lớp này, mỗi neural nhận vector đầu vào rồi xử lý (tính tổng trọng số của các đầu vào rồi cho qua hàm truyền) và cho ra