Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 84 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
84
Dung lượng
3,08 MB
Nội dung
Mục lục Deep Learning Tác giả: Ian Goodfellow, Yoshua Bengio Aaron Courville Chương 5: Cơ sở học máy Mở đầu Học sâu dạng đặc biệt học máy Để hiểu cách tường minh học sâu, cần hiểu rõ khái niệm học máy Với người bắt đầu tìm hiểu học máy, chúng tơi khuyến khích nên học qua khóa CS229 Stanford để có mức độ bao phủ kiến thức cách toàn diện Nếu quen với khái niệm học máy chuyển đến phần 5.11, ta trình bày khía cạnh kỹ thuật truyền thống giúp cho học máy phát triển mạnh mẽ ngày hơm nay, kéo theo thúc đẩy phát triển học sâu Đầu tiên, vào khái niệm thuật tốn “học” (learning algorithm) ví dụ kinh điển nó: hồi quy tuyến tính (linear regression) Sau đó, chúng tơi mơ tả thách thức làm để sinh mơ hình khớp với liệu huấn luyện, có khác biệt mơ hình tiếp xúc với liệu Hầu hết thuật tốn có thiết lập ban đầu siêu tham số (hyperparameters) mà ta phải xác định bên ngồi thuật tốn học, ví dụ với thuật tốn KNN ta cần xác định giá trị tham số “k” từ bắt đầu Vạn khởi đầu nan, việc xác định tốt hyperparameter giúp cho mơ hình cuối có độ xác cao Về bản, học máy hình thái việc ứng dụng lĩnh vực thống kê học, lĩnh vực hướng đến việc sử dụng thiết bị tính tốn để ước lượng hàm phức tạp, giảm trọng tâm vào việc chứng minh khoảng tin cậy quanh hàm Do đó, vào phương pháp tiếp cận trọng tâm thống kê: Ước lượng tần suất (frequentist estimators) suy diễn Bayes (Bayesian Inference) Các thuật tốn học máy phân thành học có giám sát (supervised learning), học không giám sát (unsupervised learning) học bán giám sát (semi-supervised learning) Chúng vào mô tả ba cách học đưa ví dụ đơn giản cho loại Hầu hết thuật toán học sâu dựa kỹ thuật tối ưu stochastic gradient descent Ngồi chúng tơi tập trung mơ tả kết hợp thuật toán tối ưu, hàm mát, mơ hình (model) tập liệu (dataset) để tạo thuật tốn học máy Cuối cùng, phần 5.11, mô tả số hạn chế thuật toán học máy cổ điển việc khái quát hóa theo liệu, đồng thời động lực thúc đẩy thuật toán học sâu phát triển để vượt qua giới hạn 5.1 Các thuật toán học Một thuật tốn học máy thuật tốn mà có khả học từ liệu Nhưng thuật tốn học từ liệu? Vào năm 1997, Mitchell đưa định nghĩa ngắn gọn rằng: "Một chương trình máy tính cho học hỏi từ kinh nghiệm E (experience) tập tác vụ T (task) phương pháp đo lường hiệu P (performance), hiệu thực tác vụ T, đo phương pháp P, cải thiện với kinh nghiệm rút từ E” Có nhiều cách để hiểu kinh nghiệm E, tác vụ T phương pháp đo lường hiệu P Trong khuôn khổ viết này, đưa khái niệm mô tả trực quan giúp người đọc dễ tiếp cận 5.1.1 Tác vụ T Học máy cho phép chương trình máy tính học từ liệu, từ thực hiên tác vụ phức tạp mà người khó lịng lập trình thủ cơng Tuy nhiên để làm điều đó, cần có hiểu biết cách mà người học, trí thơng minh người Q trình tự học không coi tác vụ, học phương tiện để đạt tác vụ Chẳng hạn muốn robot bộ, có hai chiến thuật để tiếp cận vấn đề Đầu tiên, lập trình để robot học di chuyển, cách thứ hai viết thủ cơng chương trình đặc tả cách di chuyển cho robot Ưu điểm cách robot biết nhanh, sau mãi khơng có cải thiện khả di chuyển, trừ lại tự đặc tả thuật toán khác giúp robot di chuyển hiệu Các tác vụ học máy thường mô tả trình hệ thống học máy xử lý mẫu liệu Trong mẫu liệu cho tập đặc trưng trích từ tập liệu cho, chúng thường biểu diễn vector có dạng X(x1,x2, xn)∈Rn chiều liệu xi đại diện cho đặc trưng liệu Ví dụ liệu ảnh, ta coi pixel đặc trưng, ngồi cịn có số đặc trưng nâng cao khác áp dụng thực tế HOG, Haar-like,… Hiện với phát triển Neural Network việc áp dụng mạng CNN biến thể đem lại hiệu cao việc trích chọn đặc trưng liệu ảnh Có nhiều tốn giải học máy Trong tác vụ phổ biến bao gồm: Phân loại (Classification) Trong tác vụ này, với liệu đầu vào, máy tính có nhiệm vụ xác định xem liệu thuộc vào nhóm k nhóm cho trước Cụ thể tạo hàm ánh xạ f: Rn → {1, 2,…,k} Với y=f(x), x vector với đặc tả đầu vào cho trước ứng với giá trị đặc trưng quy định từ đầu Đầu y cho biết phần tử liệu x thuộc nhóm Ngồi tốn phân loại cịn có biến thể khác, chẳng hạn đầu f(x) xác suất để phần tử x rơi vào lớp k cho trước Một ví dụ tốn nhận dạng phân loại đối tượng mà đầu vào ảnh (thường mô tả tập giá trị biểu diễn cho cường độ pixel, với loại ảnh có cách đặc tả khác nhau, ví dụ RGB, YUV,… Chẳng hạn robot Willow Garage PR2 có khả nhận diện đồ uống khác người, sau mang xác loại đồ uống yêu cầu để phục vụ khách hàng (Good-fellow et al., 2010) Mơ hình nhận diện vật thể đại cho hiệu cao thời điểm sử dụng thuật toán học sâu (Krizhevsky et al., 2012; Ioffe and Szegedy, 2015) Bài toán nhận diện đối tượng tốn nhận diện khn mặt gắn nhãn cho ảnh liệu huẩn luyện để tạo mơ hình, sau dùng mơ hình để phân loại khn mặt Phân loại liệu bị thiếu (Classification with missing inputs) Bài tốn phân loại trở nên khó khăn giá trị đầu vào bị thiếu Trên thực tế, việc xảy thường xuyên lúc đặc trưng thuận tiện cho việc trích xuất Tiêu biểu lĩnh vực y tế, có nhiều xét nghiệm tốn để thực Lúc thay cần xác định hàm ánh xạ ban đầu với giả thiết tất đặc trưng đầy đủ, ta cần xác định tập hàm cho tất trường hợp giá trị bị thiếu Trên lý thuyết với liệu có n đặc trưng ta cần tạo nên n hàm để phân loại, chương trình máy tính cần học hàm mô tả phân phối xác suất chung Chương trình học phân phối xác suất biến có liên quan, sau giải tác vụ phân loại cách lấy xác suất biên tất biến bị thiếu Mô hình Good-fellow cộng (2013b) ví dụ mơ hình xác suất sâu áp dụng cho tác vụ theo nguyên lí tương tự Nhiều tác vụ khác phần dùng để làm việc với liệu bị thiếu, phân loại với đầu vào bị thiếu khả mà học máy mang lại Hồi quy (Regression) Trong loại tác vụ này, chương trình máy tính yêu cầu với đầu vào cho trước cần dự đoán giá trị tương ứng Ví dụ với đầu vào thơng số ngơi nhà diện tích, số phịng ngủ, số tầng,… đầu cần dự đốn giá ngơi nhà Để thực tác vụ này, hệ thống cần tạo hàm f ánh xạ Rn→R Kiểu tác vụ tương tự với phân loại, khác đầu Trong thực tế với toán phân loại mà số lớp định trước vơ trở thành tốn hồi quy Chúng ta hồn tồn áp dụng để giải tốn dự đốn số tiền bảo hiểm mà người nhận, từ tính tốn mức mua bảo hiểm phù hợp, toán dự đoán giá chứng khoán, cổ phiếu,… Loại dự đoán thường dùng cho thuật toán giao giao dịch Phiên mã (Transcription) Trong loại tác vụ này, hệ thống học máy yêu cầu quan sát biểu diễn liên quan phi cấu trúc số kiểu liệu chuyển đổi chúng thành dạng rời rạc dạng văn Ví dụ nhận dạng ký tự quang học (Optical Character Recognition - OCR), chương trình máy tính hiển thị ảnh chứa văn yêu cầu trả văn với ký tự theo thứ tự (ví dụ ASCII định dạng Unicode) Google Street View sử dụng học sâu để giải vấn đề đánh số địa theo cách (Good-fellow cộng sự, 2014d) Một ví dụ khác kể đến nhận dạng tiếng nói - chương trình máy tính nhận sóng âm đầu vào trả thứ tự từ định danh từ nói ghi âm Học sâu cơng cụ lĩnh vực nhận diện tiếng nói , sử dụng rộng rãi tập đoàn lớn Microsoft, IBM Google (Hinton cộng sự, 2012d) Dịch máy (Machine Translation) Trong tác vụ dịch máy, đầu vào hầu hết chuỗi kí tự ngơn ngữ đó, chương trình máy tính phải chuyển đổi chúng ngôn ngữ khác Tác vụ thường sử dụng cho ngơn ngữ tự nhiên, ví dụ dịch từ tiếng anh sang tiếng Pháp Trong thời gian gần đây, học sâu có tác động mạnh mẽ chất lượng dịch máy, giúp cải thiện rõ rệt chất lượng dịch (Sutskever cộng sự., 2014; Bahdanau cộng sự, 2015) Đầu có cấu trúc (Structured Output) Bao gồm tất tác vụ mà đầu vector cấu trúc liệu khác chứa nhiều giá trị với mối liên hệ chặt chẽ phần tử Đây nhóm tác vụ rộng, bao gồm phần nhóm phiên mã dịch máy nói cịn nhiều tác vụ khác Một ví dụ ánh xạ - chuyển đổi câu ngôn ngữ tự nhiên dạng có khả mơ tả cấu trúc ngữ pháp cách gán nhãn node động từ, danh từ trạng từ, vân vân… Tham khảo Collobert (2011) để thấy ví dụ việc áp dụng học sâu vào tác vụ chuyển đổi Một ví dụ khác phân vùng ảnh dựa pixel, máy tính gán pixel ảnh vào nhóm cụ thể Ví dụ học sâu sử dụng để thích vị trí đường thơng qua ảnh địa khơng gian (Mnih and Hinton, 2010) Kết đầu không cần thiết phải phản ánh lại kết đầu vào với độ xác cao tác vụ kiểu ký hiệu Ví dụ việc đặt tiêu đề cho ảnh, chương trình máy tính quan sát ảnh xuất đoạn văn theo ngôn ngữ tự nhiên mơ tả lại nội dung ảnh Tác vụ gọi tác vụ đầu có cấu trúc chương trình cần trả nhiều giá trị có mối liên kết với (trong ví dụ trên, mối liên kết phần tử đầu mối liên kết từ theo cấu trúc ngữ pháp để tạo câu hợp lệ) Phát bất thường Với kiểu tác vụ chương trình cần phải rà sốt tập sư kiện đối tượng đánh dấu chúng bình thường hay bất thường Một ví dụ nhóm tác vụ phát thẻ tín dụng gian lận Bằng việc tạo mơ hình thơng qua cách bạn mua sắm, chương trình phát giao dịch bất thường thẻ bạn Khi kẻ trộm lấy cắp thẻ hay thông tin bạn, giao dịch kẻ trộm thường tạo phân phối xác suất dị thường so với thói quen giao dịch bạn Cơng ty quản lý thẻ tín dụng vơ hiệu hóa thẻ bạn trước kẻ gian kịp thực giao dịch bất thường Tham khảo Chandola đồng (2009) để nắm thêm phương thức phát bất thường Tổng hợp lấy mẫu Trong tác vụ này, thuật toán Machine Learning yêu cầu tạo mẫu liệu tương tự với mẫu liệu tập huấn luyện Tổng hợp lấy mẫu thơng qua học máy có khả hữu dụng với ứng dụng truyền thông việc tạo khối lượng lớn nội dung tay gây tốn nhàm chán, tiêu tốn nhiều thời gian Ví dụ, trị chơi điện tử tạo chi tiết cho đối tượng, vật thể kích thước lớn cách tự động thay yêu cầu họa sĩ phải phác thảo chi tiết tay pixel (Luo cộng sự, 2013) Trong số trường hợp, cần phương pháp lấy mẫu tổng hợp để sinh kiểu đầu cụ thể cho đầu vào Chẳng hạn với tác vụ tổng hợp giọng nói, cung cấp câu dạng văn yêu cầu chương trình phát dạng sóng âm chứa nội dung dạng tiếng nói Đây dạng đầu có cấu trúc, với việc làm tăng chất lượng khơng đảm bảo tính chất đầu tương ứng với đầu vào Hiển nhiên cần lượng lớn đầu phong phú để đầu tự nhiên chân thực Đầu vào bị thiếu giá trị Trong tác vụ này, thuật toán học máy cho trước đầu vào vector x ∈Rn bị thiếu giá trị số thuộc tính xi Việc chương trình cần làm tìm cách điền giá trị cịn thiếu Khử nhiễu Trong tác vụ này, thuật toán học máy cho đầu vào liệu nhiễu bên cạnh liệu Thuật toán cần dự đoán mẫu liệu từ phiên nhiễu nó, tổng qt dự đốn phân phối xác suất có điều kiện liệu biết liệu nhiễu Ước lượng mật độ hay ước lượng hàm khối xác suất Trong vấn đề ước lượng mật độ, thuật toán Machine Learning yêu cầu xác định hàm pmodel : Rn →R, pmodel(x) xem hàm mật độ xác suất (đối với x liên tục) hàm khối xác suất (đối với x rời rạc) từ không gian lấy mẫu Để giải tốt tác vụ (sẽ làm rõ phần định nghĩa khái niệm độ đo hiệu suất P), thuật toán cần học từ liệu mà quan sát Nó cần biết đâu điểm liệu co cụm với đâu điểm liệu có khả xuất Đa số tác vụ yêu cầu thuật toán học phải biết cấu trúc tổng quan phân phối xác suất Về nguyên tắc thực tính tốn phân phối để giải tác vụ khác tốt Ví dụ thực ước lượng mật độ thu phân phối xác suất p(x), dùng phân phối để giải vấn đề đầu vào với liệu bị thiếu nêu chiều liệu xi bị thiếu cho chiều liệu x-i khác, kèm theo biết phân phối xác suất xi biết yếu tố x-i cịn lại, ta hồn tồn dự đoán xi Trên thực tế, ước lượng mật độ lúc cho phép giải tất tác vụ nêu nhiều trường hợp, phép toán sử dụng phương thức vất vả mặt tính tốn Dĩ nhiên học máy cịn có khả làm nhiều Các tác vụ kể không nhằm định nghĩa cách cứng nhắc học máy mà đơn giản để minh họa số tiềm học máy làm 5.1.2 Độ đo hiệu suất P Để đánh giá khả thuật toán học máy, cần xây dựng phương pháp đo đạc, đánh giá hiệu thuật tốn Thơng thường độ đo hiệu suất P dùng cách chuyên biệt tác vụ T thực hệ thống Đối với tác vụ kiểu phân loại, phân loại với đầu vào thiếu hay phiên mã, thường đo độ xác (accuracy) mơ hình Độ xác phần liệu mà mơ hình thuật tốn sinh dự đốn xác đầu Chúng ta đạt kết tương tự việc đo tỷ lệ lỗi (error rate) - phần liệu mà mơ hình dự đốn sai Chúng ta thường coi tỷ lệ lỗi tỷ lệ mát 0-1 Tỷ lệ mát 0-1 (0-1 loss) tính mẫu phân loại xác trường hợp ngược lại Thông thường quan tâm đến việc thuật toán machine learning hoạt động tốt với liệu chưa thấy hay khơng, ảnh hưởng trực tiếp mơ hình sau lúc triển khai thực tế Do đó, đánh giá hiệu dựa tập kiểm thử Tập kiểm thử phải hoàn toàn tách biệt với tập huấn luyện Việc đánh giá hệ thống khó để nói có đáng tin cậy hay khơng, khơng có tiêu chuẩn cụ thể với trường hợp Chúng ta có đáp án nhận phản hồi từ phía khách hàng sau triển khai dự án vào thực tế Trong số trường hợp, gặp nhiều khó khăn định chọn độ đo Ví dụ cần thực tác vụ phiên mã, liệu có nên sử dụng độ xác để đánh giá mơ hình? Hoặc mơ hình thực tác vụ hồi quy, liệu nên đánh giá mơ hình cho sai số thường xuyên hay sai số sai nhiều? Cách chọn phụ thuộc vào hoàn cảnh ứng dụng mà bạn muốn triển khai Trong nhiều trường hợp khác, biết cần làm để đo xác việc đo lúc khả thi Điều thường xuyên xuất tốn ước lượng mật độ Nhiều mơ hình phân phối xác suất biểu diễn phân phối xác suất cách ngầm định Tính tốn giá trị xác suất thực tế gắn liền với điểm cụ thể khơng gian với mơ hình khơng khả thi mặt tính tốn Trong trường hợp này, cần thiết kế giải pháp thay có khả thực tác vụ tương đương với mục tiêu đề ban đầu 5.1.3 Kinh nghiệm E Học máy chia cách trực quan thành loại học có giám sát học không giám sát loại kinh nghiệm áp dụng xuyên suốt q trình học Hầu hết thuật tốn học máy sách cho phép lấy kinh nghiệm từ toàn tập liệu Tập liệu tập gồm nhiều ví dụ, đơi cịn gọi điểm liệu Một liệu kinh điển nhà thống kê học Iris Đây tập gồm 150 hoa Mỗi phần tử tập tương ứng với Mỗi giá trị chiều ứng với đặc trưng hoa: độ dài hoa, độ rộng đài hoa, độ rộng cánh hoa Tập liệu lồi mà loại hoa thuộc Có loại hoa phân nhóm kiểu liệu Học khơng có giám sát: Kinh nghiệm tập liệu chứa nhiều loại đặc trưng khác cần học đặc trưng hữu ích từ tập liệu Nói học sâu, thường muốn học toàn phân phối xác suất dùng để tạo tập liệu quy định ước lượng mật độ ngầm định tác vụ khử nhiễu ảnh Ngoài số thuật tốn học khơng giám sát phân cụm giúp việc phân chia tập liệu thành cụm chứa mẫu tương đồng lớn với Các thuật tốn học có giám sát: Trải nghiệm tập liệu chứa nhiều đặc trưng, mẫu liệu gắn liền nhãn hay mục tiêu Ví dụ liệu Iris thích lồi mà hoa thuộc Một thuật toán học có giám sát dựa vào liệu đầu vào nhãn hoa để phân loại tập Iris thành loại hoa khác Nói cách nơm na, học khơng có giám sát gắn liền với việc quan sát lượng mẫu từ vector x, cách trực tiếp gián tiếp học hàm phân phối xác suất p(x) số đặc tính hữu ích phân phối Trong học có giám sát gắn liền với việc quan sát điểm liệu x (thường vector) gắn liền với giá trị vector y, thường thông qua ước lượng xác suất p(y|x) Thuật ngữ học có giám sát bắt nguồn từ mục tiêu y cho trước người giám sát hệ thống học máy cần biết phải làm Trong học khơng giám sát, khơng có người hướng dẫn hay giáo viên Thuật tốn cần tự học thơng tin có giá trị từ liệu mà khơng có nhãn cho điểm liệu Học có giám sát học không giám sát khái niệm định nghĩa cách chuẩn tắc Ranh giới hai loại mờ nhạt Rất nhiều kĩ thuật học máy đề xuất thực đồng thời hai nhiệm vụ nêu Ví dụ, luật xích xác suất với vector x có n chiều, xác suất hợp phân tích thành: Sự phân chia cho thấy giải tốn học khơng giám sát mơ hình p(x) cách chia nhỏ thành n tốn học có giám sát Khi đó, giải tốn học có giám sát p(y|x) phương pháp học không giám sát cổ điển để học xác suất hợp p(x,y) suy được: Do đó, học có dám sát hay khơng giám sát khái niệm rõ ràng tồn Chúng giúp có thêm phân chia tương đối thuật tốn máy học Thơng thường, người ta quan niệm hồi quy, phân loại toán đầu có cấu trúc học có giám sát Ước lượng mật độ việc hỗ trợ tác vụ khác thường xếp vào loại học khơng có giám sát Ngồi ứng dụng nhiều kỹ thuật học khác Ví dụ học bán giám sát, số liệu có nhãn số khác lại khơng có Một số ví dụ gần đa dạng tập liệu tham khảo báo Kotzias et al (2015) Một số thuật tốn học máy khơng làm việc với tập liệu xác định từ trước Ví dụ, học tăng cường tương tác với mơi trường, sau lấy kinh nghiệm dựa phản hồi từ môi trường dựa hành động mà hệ thống học thực Tuy nhiên thuật toán kiểu vượt qua khn khổ sách Vì bạn tìm đọc tham khảo Sutton and Barton (1998) Bertsekas and Tsitsiklis (1996) để tìm thêm thơng tin học tăng cường, Mnih et al (2013) để hiểu học sâu ứng dụng cho học tăng cường Đa số thuật toán học máy học từ tập liệu huấn luyện Tập thể theo nhiều cách khác Trong sách hiểu tập ví dụ, hay nói tập hợp đặc trưng Một cách phổ biến để biểu diễn tập liệu thiết kế ma trận Một ma trận thiết kế ma trận chứa nhiều điểm liệu điểm liệu tương ứng với dòng, cột ma trận tương ứng với đặc trưng liệu Ví dụ, liệu Iris chứa 150 điểm liệu đặc trưng với điểm Điều nghĩa biểu diễn với ma trận thiết kế X ∈ R150x4 , Xi,1 ứng với chiều dài i, Xi,2 ứng với chiều rộng i,… Chúng ta thể đa số thuật toán sách dựa ma trận thiết kế Tất nhiên để biểu diễn liệu dạng ma trận thiết kế, cần biểu diễn điểm liệu vector Điều lúc khả thi Ví dụ bạn có ảnh có kích thước khác nhau, ảnh có lượng pixel khác nên khơng phải ảnh biểu diễn vector có chiều dài Phần 9.7 chương 10 mô tả cách giải trường hợp 5.1.4 Hồi quy tuyến tính Định nghĩa machine learning thuật tốn mà có khả cải thiện hiệu chương trình máy tính dựa vào kinh nghiệm cho cảm giác 10 Python Deep Learning TensorFlow (http://tensorflow.org/) Keras (https://keras.io/) Python Natural Language Processing Spacy (https://spacy.io/) NLTK (www.nltk.org/) TextBlob (http://textblob.readthedocs.io/en/dev/) Chúng ta cần cài thêm vài gói lien quan cần, bạn gặp vấn đề với bước việc cài đặt, tham khảo link sau : https://packaging.python.org/tutorials/ installing-packages/ Python packages Chúng ta cài đặt code demo với gói Pandas, Numpy SciPy Hiện tại, Python hỗ trợ phiên 2.x 3.x phù hợp cho machine learning Chúng ta sử dụng Python 2.7 3.5 Bản 3.5 sử dụng rộng rãi nhiều chương sách NumPy NumPy sử dụng đặc biệt cho tính tốn khoa học Python Nó thiết kế để nâng cao hiệu mảng đa chiều lớn ghi tùy ý, mà không bị nhiều tốc độ cho mảng đa chiều nhỏ Nó sử dụng container đa chiều cho liệu chung Khả NumPy tạo mảng kiểu tùy ý, làm cho NumPy phù hợp để giao tiếp với ứng dụng có sở liệu đa năng, trở thành thư viện hữu ích mà bạn sử dụng suốt sách này, sau cho vấn đề Dưới code sử dụng NumPy package, hầu hết dòng đoạn code có comment để giúp bạn dễ hiểu 70 71 72 NumPy có hàm khác, zeros, ones, zeros_like, ones_like, indentity, eye, sử dụng để tạo mảng với toàn phần tử hoặc với số chiều cho trước Phép cộng, trừ nhân xảy mảng có size Phép nhân NumPy ko phép nhân ma trận thông thường Nếu mảng ko size, mảng có kích cỡ nhỏ lặp lại để thực thao tác mong muốn Sau ví dụ cho điều : a1 = np.array([[1,2],[3,4],[5,6]], float) a2 = np.array([-1,3],float) print (a1+a2) => [[0 5.] [2 7.] [4 9.]] Mọi người theo link sau để học chi tiết Numpy : www.numpy.org/ https://docs.scipy.org/doc/numpy-dev/user/ quickstart.html NumPy cung cấp vài hàm áp dụng trực tiếp mảng: sum (tổng hợp phần tử), prod (tích phần tử), mean (trung bình phần tử), var (phương sai phần tử), std (độ lệch chuẩn phần tử), 73 argmin (chỉ số phần tử nhỏ mảng), argmax (chỉ mục phần tử lớn mảng), sort (sắp xếp phần tử), unique (các phần tử mảng) a3 = np.array([[0,2],[3,-1],[3,5]], float) print(a3.mean(axis=0)) # Mean of elements column-wise > [ 2.] print(a3.mean(axis=1)) # Mean of elements row-wise > [ 1 4.] Lưu ý : để thực thao tác mảng đa chiều, ta cần include từ khóa axis vào lệnh NumPy cung cấp chức để kiểm tra giá trị có mảng, chẳng hạn nonzero (kiểm tra phần tử khác 0), isnan (kiểm tra phần tử "không phải số") isfinite (kiểm tra phần tử hữu hạn) Hàm where trả mảng với phần tử thỏa mãn điều kiện sau: a4 = np.array([1,3,0], float) np.where(a!=0, 1/a ,a) > array([ 0.2 , 0.25 , 0.2 , 0.125]) Để lấy số ngẫu nhiên ta sử dụng hàm random np.random.rand(2,3) > array([[ 0.41453991, 0.46230172, 0.78318915], [0.54716578, 0.84263735, 0.60796399]] ) Pandas Pandas thư viện phần mềm nguồn mở DataFrames Series hai cấu trúc liệu sử dụng rộng rãi cho mục đích phân tích liệu Series mảng chiều DataFrame cấu trúc liệu dạng bảng với mục mức cột hàng Pandas công cụ tuyệt vời để xử lý trước tập liệu cung cấp hiệu tối ưu hóa cao: 74 75 76 Lưu ý sử dụng hàm map để implement hàm phần tử cột / hàng riêng lẻ hàm apply để thực hàm tất phần tử cột / hàng lúc # MAP Function class_data['Subject'] = class_data['Subject'].map(lambda x : x + 'Sub') class_data['Subject'] > Student1 EnglishSub Student2 MathematicsSub Student3 ScienceSub Student4 HistorySub Name: Subject, dtype: object 77 Đoạn code dùng để chuyển kiểu liệu cột kiểu "category" # Changing datatype of the column class_data['Grade'] = class_data['Grade'].astype('category') class_data.Grade.dtypes > category Đoạn lưu kết vào file csv : # Storing the results class_data.to_csv('class_dataset.csv', index=False) Trong số chức cung cấp thư viện Pandas, hàm kết hợp (concat, merge, append), groupby pivot_table có ứng dụng chuyên sâu nhiệm vụ xử lý liệu Tham khảo nguồn sau để biết hướng dẫn chi tiết Pandas: http://pandas.pydata.org/ 78 SciPy SciPy cung cấp thuật toán phức tạp việc sử dụng chúng hàm NumPy SciPy phân bổ lệnh cấp cao loạt lớp để thao tác trực quan hóa liệu SciPy xếp dạng nhiều gói nhỏ, với gói nhắm vào miền máy tính khoa học cá nhân Một vài gói linalg (đại số tuyến tính), constants (hằng số vật lý toán học), sparse (ma trận thưa thớt thứ liên quan) Hầu hết chức gói NumPy áp dụng mảng bao gồm gói SciPy SciPy cung cấp routines(tạm dịch: function procedure) kiểm tra trước, tiết kiệm nhiều thời gian xử lý ứng dụng máy tính khoa học import scipy import numpy as np Dưới vài ví dụ từ Linalg Stats, số nhiều gói cung cấp SciPy Vì gói đặc thù miền, làm cho SciPy trở thành lựa chọn hồn hảo cho khoa học liệu SciPy subpackages, cho đại số tuyến tính (scipy.linalg), import cách rõ ràng theo cách sau: from scipy import linalg mat_ = np.array([[2,3,1], [4,9,10], [10,5,6]]) # Matrix Creation print(mat_) > [[ 1] [ 10] [10 6]] linalg.det(mat_) # Determinant of the matrix inv_mat = linalg.inv(mat_) # Inverse of the matrix print(inv_mat) > [[ 0.02409639 -0.07831325 0.12650602] [ 0.45783133 0.01204819 -0.09638554] [-0.42168675 0.12048193 0.03614458]] # Singular Value Decomposition comp_1, comp_2, comp_3 = linalg.svd(mat_) print(comp_1) print(comp_2) print(comp_3) > [[-0.1854159 0.0294175 -0.98221971] [-0.73602677 -0.66641413 0.11898237] [-0.65106493 0.74500122 0.14521585]] [ 18.34661713 5.73710697 1.57709968] 79 [[-0.53555313 -0.56881403 -0.62420625] [ 0.84418693 -0.38076134 -0.37731848] [-0.02304957 -0.72902085 0.6841033 ]] Scipy.stats gói lớn, với phân phối thống kê khác chức hoạt động loại tập liệu khác # Scipy Stats module from scipy import stats # Generating a random sample of size 20 from normal distribution with mean and standard deviation rvs_20 = stats.norm.rvs(3,5 , size = 20) print(rvs_20, '\n - ') # Computing the CDF of Beta distribution with a=100 and b=130 as shape parameters at random variable 0.41 cdf_ = scipy.stats.beta.cdf(0.41, a=100, b=130) print(cdf_) > [ -0.21654555 7.99621694 -0.89264767 10.89089263 2.63297827 -1.43167281 5.09490009 -2.0530585 -5.0128728 -0.54128795 2.76283347 8.30919378 4.67849196 -0.74481568 8.28278981 -3.57801485 -3.24949898 4.73948566 2.71580005 6.50054556] 0.225009574362 80 Tài liệu tham khảo Deep learning-Ian Goodfellow and Yoshua Bengio and Aaron Courville chapter 5: Machine learning Basics https://www.deeplearningbook.org/contents/ml.html Trang Machine Learning bản: https://machinelearningcoban.com/ Diễn đàn machine learning bản: https://forum.machinelearningcoban.com/ Deep Learning for Natural Language Processing Creating Neural Networks with Python-Palash Goyal, Sumit Pandey, Karan Jain chapter 1: Common Terms Associated with Language Processing Numpy documentation: https://docs.scipy.org/doc/numpy-1.15.0/user/index.html Scipy documentation: https://docs.scipy.org/doc/scipy/reference/ Pandas documentation: https://pandas.pydata.org/pandas-docs/stable/ 81 Phụ lục Code demo số thuật toán nhắc đến tiểu luận: K-Means: https://github.com/nguyennm1024/K-means Support Vector Machine (SVM): https://github.com/nguyennm1024/SVM Decision Tree: https://github.com/nguyennm1024/DecisionTree K Nearest Neighbor: https://github.com/nguyennm1024/KNN Do số lượng code lớn chạy nhiều thời gian nên nhóm em xin phép push lên github để thầy bạn tiện theo dõi tải Còn tài liệu nhóm em xin dùng số hình ảnh demo lại Hình ảnh minh họa: K-mean Thuật tốn K-means áp dụng vào việc phân vùng ảnh Với giá trị k tương ứng, thu ảnh với vùng màu độ chi tiết khác nhau, phù hợp với lớp toán khác 82 KNN Áp dụng KNN việc nhận diện chữ số (Image to text) 83 SVM + HOG Sử dụng thuật toán phân lớp SVM kết hợp đặc trưng HOG để nhận diện oto video 84 ... Dịch máy (Machine Translation) Trong tác vụ dịch máy, đầu vào hầu hết chuỗi kí tự ngơn ngữ đó, chương trình máy tính phải chuyển đổi chúng ngôn ngữ khác Tác vụ thường sử dụng cho ngơn ngữ tự nhiên, ... chế thuật toán học máy cổ điển việc khái quát hóa theo liệu, đồng thời động lực thúc đẩy thuật toán học sâu phát triển để vượt qua giới hạn 5.1 Các thuật toán học Một thuật toán học máy thuật tốn... chất đầu tương ứng với đầu vào Hiển nhiên cần lượng lớn đầu phong phú để đầu tự nhiên chân thực Đầu vào bị thiếu giá trị Trong tác vụ này, thuật toán học máy cho trước đầu vào vector x ∈Rn bị thiếu