Mục lục 1. Bài toán 2 1.1. Mô tả tập dữ liệu (Dataset) 2 1.1.1. Nguồn gốc (UCI ARFF Repository) 2 1.1.2. Thuộc tính và ý nghĩa các thuộc tính 2 1.2. Bài toán phân lớp (Classification Problem) trên tập dữ liệu đã cho 4 2. Xây dựng mô hình huấn luyện cho bộ phân lớp (classifier) 5 2.1. Tiền xử lý dữ liệu cho tập dữ liệu vowel.arff 6 2.1.1. Vấn đề loại bỏ các thuộc tính không có liên quan đến thuộc tính phân lớp 6 2.1.2. Vấn đề phân chia mẫu dữ liệu huấn luyện và dữ liệu kiểm tra từ tập dữ liệu gốc 8 2.2. Các bộ phân lớp 9 2.2.1. Phân lớp bằng mô hình mạng Neural nhiều tầng (Multilayer Perceptron) 10 3. Thực nghiệm - Sử dụng bộ công cụ Weka 3.7.5 để thực hiện bài toán phân lớp trên tập dữ liệu vowel.arff 12 3.1. Xây dựng mô hình phân lớp 14 3.2. Kết quả phân lớp thực nghiệm 19 Tài liệu tham khảo 21 1. Bài toán 1.1. Mô tả tập dữ liệu (Dataset) 1.1.1. Nguồn gốc (UCI ARFF Repository) Link download từ Intrenet: http://repository.seasr.org/Datasets/UCI/arff/ Gordon Peterson và Harold Barney đã tiến hành một điều tra chi tiết về các nguyên âm Anh - Mỹ trong bài báo [1]. Công trình này đưa ra một độ đo âm thanh của tần số gốc (Fundalmental frequency – F0) và 9 tần số đặc trưng tiếp theo (formant frequencies – là những tần số trong âm thanh có được do cộng hưởng của các tần số bậc thấp hơn) đối với một tập các từ chứa các nguyên âm khác nhau. Cụ thể, đối với mỗi nguyên âm, các tác giả đặt trong những từ khác nhau, bắt đầu bằng âm h và kết thúc bằng âm d (Ví dụ: heed /hi:d/, hid/hId/…) và ghi nhận lại các tần số âm thanh phát ra theo 10 đặc trưng nêu trên. Bảng 1 cho thấy dữ liệu trong thực nghiệm này:
Mục lục Mục lục 1 1.Bài toán 2 1.1.Mô tả tập dữ liệu (Dataset) .2 1.1.1.Nguồn gốc (UCI ARFF Repository) 2 1.1.2.Thuộc tính và ý nghĩa các thuộc tính .2 1.2.Bài toán phân lớp (Classification Problem) trên tập dữ liệu đã cho .4 2.Xây dựng mô hình huấn luyện cho bộ phân lớp (classifier) .5 2.1.Tiền xử lý dữ liệu cho tập dữ liệu vowel.arff 6 2.1.1.Vấn đề loại bỏ các thuộc tính không có liên quan đến thuộc tính phân lớp 6 2.1.2.Vấn đề phân chia mẫu dữ liệu huấn luyện và dữ liệu kiểm tra từ tập dữ liệu gốc .8 2.2.Các bộ phân lớp 9 2.2.1.Phân lớp bằng mô hình mạng Neural nhiều tầng (Multilayer Perceptron) .10 3.Thực nghiệm - Sử dụng bộ công cụ Weka 3.7.5 để thực hiện bài toán phân lớp trên tập dữ liệu vowel.arff .12 3.1.Xây dựng mô hình phân lớp 14 3.2.Kết quả phân lớp thực nghiệm .19 Tài liệu tham khảo .21 1. Bài toán 1.1. Mô tả tập dữ liệu (Dataset) 1.1.1. Nguồn gốc (UCI ARFF Repository) Link download từ Intrenet: http://repository.seasr.org/Datasets/UCI/arff/ Gordon Peterson và Harold Barney đã tiến hành một điều tra chi tiết về các nguyên âm Anh - Mỹ trong bài báo [1]. Công trình này đưa ra một độ đo âm thanh của tần số gốc (Fundalmental frequency – F0) và 9 tần số đặc trưng tiếp theo (formant frequencies – là những tần số trong âm thanh có được do cộng hưởng của các tần số bậc thấp hơn) đối với một tập các từ chứa các nguyên âm khác nhau. Cụ thể, đối với mỗi nguyên âm, các tác giả đặt trong những từ khác nhau, bắt đầu bằng âm h và kết thúc bằng âm d (Ví dụ: heed /hi:d/, hid/hId/…) và ghi nhận lại các tần số âm thanh phát ra theo 10 đặc trưng nêu trên. Bảng 1 cho thấy dữ liệu trong thực nghiệm này: Raymond Watrous [2] đã tiến hành sắp xếp lại dữ liệu tổ chức trong [1] sử dụng tại trường đại học University of Pennsylvania. Sau một thời gian được chỉnh sửa và hoàn thiện, dữ liệu được công bố bằng định dạng arff của weka, tên là pbvowel và biến thể khác là vowel (hiện tại được cung cấp tại repository của uci). 1.1.2. Thuộc tính và ý nghĩa các thuộc tính Vào những năm 50 của thế kỷ trước, Gunnar Fant đã có một đóng góp quan trọng trong việc phát triển lý thuyết về giọng nói. Trong nghiên cứu này của ông, sóng âm được xem xét thông qua phản ứng của hệ thống lọc âm tần đối với một hoặc một vài nguồn âm khác nhau. Đó là nguyên lý cơ bản của những mô hình lọc âm trong quy trình điều chế giọng nói. Trong quy trình xây dựng bộ dữ liệu Vowel, các tác giả quan tâm đến đặc trưng tần số của âm thanh, cụ thể là tần số gốc F0 và tần số hòa âm Fn. Fundamental frequency (F0) Tần số gốc: Khi một nguyên âm được phát ra, dây thanh quản rung lên theo một tốc độ nhất định và gọi là tần số gốc (tần số cơ bản) hay là F0. Trong thực nghiệm, F0 không phải lúc nào cũng như nhau và thay đổi một cách có chủ đích hoặc không có chủ đích. Giá trị trung bình của tần số F0 của trẻ em thường cao hơn so với người trưởng thành, và của nữ thường cao hơn nam. Điều này có thể được kiểm chứng trong dữ liệu vowel (trong dữ liệu này có quan tâm đến giới tính của người được tham khảo). Liên quan đến tần số gốc, có một khái niệm tương đương là cao độ của âm thanh (pitch). Trong công nghệ thông tin nói riêng và trong kỹ thuật xử lý tín hiệu số nói chung, tần số gốc F0 là một thông số cực kỳ quan trọng và là dữ liệu đầu vào bắt buộc cho mọi bài toán liên quan đến xử lý giọng nói. Trong tập dữ liệu vowel, tần số F0 được ghi nhận trong thuộc tính F0. F0 được mô hình hóa theo kiểu real (dữ liệu miền liên tục). Formants (Tần số hòa âm): Khác với tần số gốc F0 được tạo ra bởi nguồn âm (sự rung động của các dây thanh quản), thì các tần số hòa âm được tạo ra bởi sự cộng hưởng âm thanh do va đập của sóng âm với khoang miệng, môi, răng và lưỡi. Tùy thuộc vào các dạng hình khác nhau của những yếu tố này, ta phát ra những phổ âm thanh khác nhau (âm có tần số khác nhau). Trong tập dữ liệu vowel, người ta đã khảo sát và chia các âm này theo các tần số khác nhau (Từ F1 đến F9). Mỗi tần số được mô hình hóa kiểu real (miền dữ liệu liên tục). Tập nguyên âm mẫu: Trong tập dữ liệu vowel, mỗi nguyên âm /X/ được coi là một thành phần của một từ nào đó có dạng /hXd/. Các từ này được trình bày trong bảng 1. Tập các nguyên âm được đưa vào thuộc tính Class (thuộc tính được chỉ định dùng để phân lớp). Thuộc tính Class được cấu trúc thành dạng tập hợp 11 thành phần (tương ứng với 11 nguyên âm tiếng Anh) như sau: @attribute 'Class' { hid, hId, hEd, hAd, hYd, had, hOd, hod, hUd, hud, hed} 1.2. Bài toán phân lớp (Classification Problem) trên tập dữ liệu đã cho - Dùng tập dữ liệu đã cho huấn luyện một bộ phân lớp có khả năng phân biệt các nguyên âm tiếng Anh. - Ngoài ra, dựa trên tập dữ liệu huấn luyện, kiểm nghiệm những nguyên lý vật lý cơ bản về giọng nói như: Sự phụ thuộc của tần số âm hòa âm vào tần số gốc, các nguyên âm được phát ra có được phân biệt bởi các thuộc tính hòa âm hay không. 2. Xây dựng mô hình huấn luyện cho bộ phân lớp (classifier) Trong lĩnh vực máy học (machine Learning) và nhận dạng mẫu (pattern recognition), bài toán phân lớp (classification) đề cập đến các thuật toán (algorithms) nhằm xác định lớp (class) của đối tượng đã cho sẽ thuộc về lớp nào trong các lớp đã cho trước (given categories). Khác với bài toán phân cụm (clustering), dữ liệu dùng để xây dựng mô hình (Training Data) trong bài toán phân lớp phải được xác định lớp trước (pre-Labeled). Ví dụ, xác định một email thuộc “spam” hoặc “non-spam”, hay xác định loại bệnh của bệnh nhân dựa vào các triệu chứng của họ. Điều kiện tiên quyết để xây dựng một bộ phân lớp hiệu quả là việc xử lý dữ liệu huấn luyện. Điều này được thể hiện rõ trên hai khía cạnh. Thứ nhất, việc xử lý dữ liệu làm dữ liệu huấn luyện ổn định, hạn chế sai sót (xử lý oulier), hạn chế tình trạng mất mát dữ liệu. Từ đó mà bộ phân lớp trở nên ổn định hơn. Thứ hai, việc xử lý dữ liệu bao gồm cả việc lựa chọn các thuộc tính có liên quan, loại bỏ các thuộc tính ít liên quan trong quá trình phân lớp. Điều này làm giảm các trường dữ liệu gây nhiễu cho quá trình huấn luyện bộ phân lớp. Sau khi có được tập mẫu huấn luyện, ta sử dụng các thuật toán khác nhau để tạo ra những bộ phân lớp khác nhau. Như vậy, có thể coi mỗi thuật toán thực hiện phân lớp là đại diện của một bộ phân lớp khác nhau. Đầu vào của các bộ phân lớp này là một bản ghi hoặc một tập các bản ghi mới, và đầu ra là lớp mà dữ liệu đó thuộc về. Trong trường hợp mẫu dữ liệu chưa từng xuất hiện trong tập huấn luyện (unseen data), ta thấy bộ phân lớp có khả năng dự đoán (predicating). Cuối cùng, mỗi bộ phân lớp có các chỉ số để xem xét độ chính xác, tính tin cậy của nó. Vì vậy, việc xây dựng một bộ dữ liệu để kiểm chứng là điều vô cùng cần thiết. Các vấn đề gặp phải trong việc xử lý dữ liệu này cũng giống như đối với dữ liệu huấn luyện (vấn đề sai sót dữ liệu và vấn đề lựa chọn thuộc tính). Do tính chất như vậy, trong thực tế, khi dữ liệu thu thập đủ lớn thì người ta thường sử dụng một phần để làm dữ liệu huấn luyện, phần còn lại để làm dữ liệu kiểm chứng. Điều này đảm bảo tính đồng nhất và liên tục trong dữ liệu. Điều này là vô cùng quan trọng, đặc biệt đối với những mẫu dữ liệu thường xuyên thay đổi theo thời gian. Hình sau mô tả qui trình xây dựng mô hình phân lớp các đối tượng. 2.1. Tiền xử lý dữ liệu cho tập dữ liệu vowel.arff Trong tập dữ liệu có xuất hiện các thuộc tính tần số (F0 … F9) là kiểu số thực, tức là miền giá trị liên tục. Một số thuật toán phân lớp đòi hỏi sử dụng các giá trị miền rời rạc (ID3, …) sẽ không thực thi được. Tuy nhiên, việc sử dụng biến thể C4.5 (J48), multilayer-perceptron và Naïve Bayes cho phép chúng ta bỏ qua việc rời tạc hóa dữ liệu cho các thuộc tính miền liên tục. Xem xét ở khía cạnh khác, việc xử lý dữ liệu còn bao gồm lọc bỏ các giá trị không mấy liên quan đến thuộc tính phân lớp và phân chia tập dữ liệu huấn luyện/kiểm tra cho hợp lý và hiệu quả. Những vấn đề này được xem xét cụ thể như sau. 2.1.1. Vấn đề loại bỏ các thuộc tính không có liên quan đến thuộc tính phân lớp a. Dựa vào nhận xét chủ quan đối với bộ dữ liệu đang xét Dựa trên kiến thức vật lý (chủ quan của sinh viên) về âm thanh và giọng nói, mỗi nguyên âm (vowel) được phát ra sẽ có một tập các phổ tần số khác nhau, là kết quả của tần số cơ bản F0 và các tần số hòa âm F1…F9. Tuy nhiên – cũng theo nhận thức của sinh viên – thì âm của nguyên âm có năng lượng tập trung ở các dải âm tần tương thấp (tức là tập trung chủ yếu vào các tần số F0, F1, F2, F3). Thực tế thì trong mẫu dữ liệu gốc của vowel.arff là pbvowel.arff cũng chỉ quan tâm đến các tần số F0, F1, F2, F3. Vậy, khi tách lớp, ta có thể loại bỏ các thuộc tính âm tần bậc cao (F7, F8, F9). Training set Learn classifier Test set Model Weka cung cấp cho người sử dụng một phương thức rất đơn giản để loại bỏ các thuộc tính không cần thiết bằng tay (chọn các thuộc tính muốn xóa rồi nhấn Remove). b. Dựa vào đánh giá khách quan theo các thuật toán đo độ tương quan Các luồng ý kiến khác cho rằng việc nhận xét về một tập dữ liệu nào đó sử dụng tri thức đã có để tiến hành chọn các thuộc tính liên quan là không thỏa đáng. Những người ủng hộ luồng ý kiến này cho rằng số liệu thống kê và số đo độ tương quan giữa các thuộc tính là yếu tố quyết định xem một thuộc tính là quan trọng hay không quan trọng đối với thuộc tính khác (ở đây là thuộc tính phân lớp). Xem xét này có thể đúng với một số trường hợp, tuy nhiên với những dữ liệu thực tế thì lại thường không hiệu quả, nhất là những mẫu dữ liệu “chưa đủ lớn – chưa đầy đủ, chưa đủ chuẩn hóa và chưa đủ ổn định”. Lấy ví dụ, việc sử dụng các thuật toán đo độ tương quan giữa thuộc tính “số con cái” và thuộc tính “kế hoạch sinh con” trong điều tra về việc thụ thai (UCI Contraceptive Method Choice - http://archive.ics.uci.edu/ml/datasets/Contraceptive+Method+Choice) có thể sai nếu số liệu về số con cái chưa được khảo sát đầy đủ (dữ liệu khuyết thiếu). *) Những nhận định và phương pháp loại bỏ thuộc tính trên sẽ được thực nghiệm trên tập dữ liệu vowel.arff, sử dụng weka. Tuy nhiên, do những hạn chế ở mỗi phương pháp tiếp cận trên, việc phối hợp linh hoạt giữa tri thức người và đo lường của máy là điều kiện cần để có một bộ dữ liệu huấn luyện tốt. 2.1.2. Vấn đề phân chia mẫu dữ liệu huấn luyện và dữ liệu kiểm tra từ tập dữ liệu gốc Dữ liệu để xây dựng mô hình: dữ liệu gốc (original dataset), dữ liệu này phải có thuộc tính phân lớp (categorical attribute). Dữ liệu gốc sẽ được chia thành 2 phần là Training Set (để xây dựng model) và Test Set (để kiểm định mẫu - Model). Chia nhỏ tập dữ liệu theo phương pháp CV (Cross-Validation) trong quá trình huấn luyện và kiểm lỗi mô hình phân lớp Đây là kỹ thuật chủ yếu được sử dụng trong xây dựng predictive Model. Trong đó dữ liệu gốc sẽ được chia thành n phần bằng nhau (n-fold), và quá trình Train/Test Model thực hiện lặp lại n lần. Tại mỗi lần Train/Test Model, 1 phần dữ liệu dùng để Test và (n-1) phần còn lại dùng để Train. (Người ta đã chứng minh 10-fold Cross –Validation là giá trị tối ưu - theo GJ, McLachlan; K.A. Do, C. Ambroise (2004). Analyzing microarray gene expression data. Wiley) Tính toán lỗi cho bộ phân lớp 2.2. Các bộ phân lớp Như đã đề cập ở trên, mỗi bộ phân lớp được đại diện bởi một thuật toán huấn luyện. Các thuật toán được sinh viên sử dụng trong bài tập này là: Naïve Bayes, J48(hay C4.5) và mạng noron nhiều tầng (Multilayer Perceptron). Trong phạm vi bài tập lớn, sinh viên xin giới thiệu thuật toán huấn luyện multilayer perceptron như là thuật toán đại diện. 2.2.1. Phân lớp bằng mô hình mạng Neural nhiều tầng (Multilayer Perceptron) Phỏng theo liên kết giữa các neural thần kinh trong não bộ con người, thuật toán mạng neural là một trong những thuật toán được ứng dụng nhiều nhất trong các nghiên cứu học máy, đặc biệt là trong các bài toán nhận dạng. Như đã đề cập ở trước, một bộ phân lớp có khả năng nhận dạng, rất thích hợp để cài đặt thuật toán mạng neural lên đó. Thuật toán này dựa trên việc học và tinh chỉnh các thông số của các nút mạng (perceptron), dựa trên giải thuật lan truyền ngược như sau: Initialize the weights in the network (often randomly) Do For each example e in the training set O = neural-net-output(network, e) ; forward pass T = teacher output for e Calculate error (T - O) at the output units Compute delta_wh for all weights from hidden layer to output layer ; backward pass Compute delta_wi for all weights from input layer to hidden layer ; backward pass continued Update the weights in the network Until all examples classified correctly or stopping criterion satisfied Return the network Mã giả phân loại dữ liệu với mạng neural . “kế ho ch sinh con” trong điều tra về việc thụ thai (UCI Contraceptive Method Choice - http://archive.ics.uci.edu/ml/datasets/Contraceptive+Method+Choice). hAd, hYd, had, hOd, hod, hUd, hud, hed} 1.2. Bài toán phân lớp (Classification Problem) trên tập dữ liệu đã cho - Dùng tập dữ liệu đã cho huấn luyện một