Tiểu luận Khai phá dữ liệu: Đề tài Cơ sở học máy tính, Giới thiệu về xử lí ngôn ngữ tự nhiên và học sâu

82 6 0
Tiểu luận Khai phá dữ liệu: Đề tài Cơ sở học máy tính, Giới thiệu về xử lí ngôn ngữ tự nhiên và học sâu

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

·· Mục lục Mở đầu 5.1 Các thuật toán học 5.1.1 Tác vụ T Phân loại (Classification) Phân loại liệu bị thiếu (Classification with missing inputs) Hồi quy (Regression) Phiên mã (Transcription) Dịch máy (Machine Translation) Đầu có cấu trúc (Structured Output) Phát bất thường Tổng hợp lấy mẫu Đầu vào bị thiếu giá trị Khử nhiễu Ước lượng mật độ hay ước lượng hàm khối xác suất 5.1.2 Độ đo hiệu suất P 5.1.3 Kinh nghiệm E 10 5.1.4 Hồi quy tuyến tính 13 5.2 Dung lượng (capacity), overfitting, underfitting 5.2.1 Khơng có bữa trưa miễn phí (no free lunch theorem) 5.2.2 Regularization 16 24 25 5.3 Siêu tham số tập validation 5.3.1 Cross validation 27 28 5.4 Ước lượng, độ chệch phương sai 5.4.1 Ước lượng điểm 5.4.2 Độ chệch 5.4.3 Phương sai độ lệch chuẩn 5.4.4 Đánh đổi độ chệch phương sai để cực tiểu hóa trung bình bình phương sai số 5.4.5 Tính quán 30 30 31 34 36 37 5.5 Ước lượng hợp lý cực đại (Maximum Likelihood Estimation) 38 5.5.1 Logarit hợp lý có điều kiện sai số bình phương trung bình 40 5.5.2 Các tính chất phương pháp hợp lý cực đại 41 5.6 Thống kê Bayes 5.6.1 Ước lượng hậu nghiệm cực đại (MAP) 42 45 5.7 Các thuật toán học có giám sát 5.7.1 Học có giám sát dựa xác suất 5.7.2 Máy vector hỗ trợ 5.7.3 Các thuật tốn học có giám sát đơn giản khác 46 47 48 50 5.8 Các thuật tốn học khơng giám sát 5.8.1 Phân tích thành phần 5.8.2 Phân cụm k-means 52 53 55 5.9 Stochastic Gradient Descent 56 5.10 Xây dựng thuật toán học máy 58 5.11 Những thách thức thúc đẩy phát triển học sâu 5.11.2 Tính bất biến cục chế kiểm soát độ trơn 5.11.3 Học đa tạp 59 61 64 Kết luận 70 Giới thiệu cài đặt 72 Python packages NumPy Pandas SciPy 73 73 77 82 Code demo số thuật toán nhắc đến tiểu luận: Hình ảnh minh họa: K-mean KNN SVM + HOG 85 85 85 86 87 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 toán “học” (learning algorithm) ví dụ kinh điển nó: hồi quy tuyến tính (linear regression) Sau đó, 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 toá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 Ngoài tập trung mô tả kết hợp thuật tốn tối ưu, hàm mát, mơ hình (model) tập liệu (dataset) để tạo thuật toá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 qt 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 mà có khả học từ liệu Nhưng thuật toá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ả q 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 toá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 u cầu với đầu vào cho trước cần dự đốn giá trị tương ứng Ví dụ với đầu vào thông số 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 toán dự đoá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à soá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 quát dự đoá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 tố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 lại, ta hồn tồn dự đố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 toá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 Chương : Giới thiệu Xử lí ngơn ngữ tự nhiên học sâu Giới thiệu cài đặt Xử lí ngơn ngữ tự nhiên(NPL) nhiệm vụ khó khoa học máy tính Ngơn ngữ trình bày nhiều vấn đề khác đa dạng từ ngôn ngữ đến ngơn ngữ khác Cấu trúc trích xuất thơng tin có nghĩa từ free text ( văn tự do) cho thấy giải pháp tốt, thực cách Trước đó, nhà khoa học máy tính sử dụng thuật tốn phức tạp để chia ngơn ngữ thành dạng ngữ pháp nó, chẳng hạn phần lời nói, cụm từ, … Ngày nay, deep learning chìa khóa để thực việc làm Chương sách mang tới cho người đọc kiến thức ngơn ngữ python, NLP( xử lí ngơn ngữ tự nhiên) Deep Learning( học sâu ) Đầu tiên, với mức độ beginner, muốn giới thiệu với bạn thư viện Pandas, NumPy SciPy Chúng giả định bạn cài đặt Python kèm với thư viện Chúng ta thảo luận thư viện sử dụng phổ biến NLP với vài ví dụ Cuối cùng, thảo luận khái niệm học sân vài framework phổ biến, TensorFlow Keras Sau đó, chương sau tiến tới mức độ tổng quan cao NLP Dựa vào thiết bị phiên tương thích, người cài Python đường dẫn sau • www.python.org/downloads/ • www.continuum.io/downloads Bên cạnh để phục vụ cho deep learning, cần cài package sau : Python Machine Learning Pandas (http://pandas.pydata.org/pandas-docs/stable) NumPy (www.numpy.org) SciPy (www.scipy.org) Python Deep Learning TensorFlow (http://tensorflow.org/) Keras (https://keras.io/) 67 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 68 69 70 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ử), 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ả 71 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: 72 73 74 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 75 Đ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/ 76 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] [[-0.53555313 -0.56881403 -0.62420625] [ 0.84418693 -0.38076134 -0.37731848] 77 [-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 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 78 Scipy documentation: https://docs.scipy.org/doc/scipy/reference/ Pandas documentation: https://pandas.pydata.org/pandas-docs/stable/ 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 79 KNN Áp dụng KNN việc nhận diện chữ số (Image to text) 80 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 81 ... toán học máy cổ điển việc khái qt 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 mà có khả học. .. 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, ... 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

Ngày đăng: 17/02/2022, 22:09