Python machine learning trang 1,26 73 (1)

49 3 0
Python machine learning trang 1,26 73 (1)

Đ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

Machine learning by python: việt hóa công nghệ thông tin......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Machine Translated by Google www.it-ebooks.info Machine Translated by Google Cung cấp cho máy tính khả học hỏi từ liệu Theo tôi, học máy, ứng dụng khoa học thuật toán xử lý liệu, lĩnh vực thú ngành khoa học máy tính! Chúng ta sống thời đại mà liệu dồi dào; sử dụng thuật toán tự học từ lĩnh vực học máy, biến liệu thành kiến thức Nhờ có nhiều thư viện nguồn mở mạnh mẽ phát triển năm gần đây, có lẽ chưa có thời điểm tốt để thâm nhập vào lĩnh vực học máy học cách sử dụng thuật toán để phát mẫu liệu đưa dự đoán kiện tương lai Trong chương này, tìm hiểu khái niệm loại học máy khác Cùng với phần giới thiệu thuật ngữ liên quan, đặt tảng cho việc sử dụng thành công kỹ thuật học máy để giải vấn đề thực tế Trong chương này, đề cập đến chủ đề sau: • Các khái niệm chung học máy • Ba loại hình học tập thuật ngữ • Các tảng để thiết kế thành công hệ thống máy học • Cài đặt thiết lập Python để phân tích liệu học máy [ ] www.it-ebooks.info Machine Translated by Google Cung cấp cho máy tính khả học hỏi từ liệu Xây dựng máy móc thơng minh biến liệu thành tri thức Trong thời đại cơng nghệ đại này, có nguồn tài nguyên mà có dồi dào: lượng lớn liệu có cấu trúc phi cấu trúc - Các thuật toán học tập để thu thập kiến thức từ liệu nhằm đưa dự đốn Thay u cầu người rút quy tắc xây dựng mơ hình theo cách thủ cơng từ việc phân tích lượng lớn liệu, học máy đưa giải pháp thay hiệu để nắm bắt kiến thức liệu nhằm cải thiện hiệu suất mơ hình dự đoán đưa định dựa liệu Học máy không ngày trở nên quan trọng nghiên cứu khoa học máy tính mà cịn đóng vai trị lớn hết sống hàng ngày Nhờ học máy, tận hưởng khả lọc thư rác mạnh mẽ , phần mềm nhận dạng giọng nói văn tiện lợi, cơng cụ tìm kiếm Web đáng tin cậy, người chơi cờ thách thức, hy vọng sớm có xe tự lái an toàn hiệu Ba loại học máy khác Trong phần này, xem xét ba loại học máy: học có giám sát, học khơng giám sát học tăng cường Chúng ta tìm hiểu khác biệt ba loại học tập khác sử dụng ví dụ khái niệm, phát triển trực giác cho lĩnh vực vấn đề thực tế nơi chúng áp dụng: [ ] www.it-ebooks.info Machine Translated by Google Chương Đưa dự đoán tương lai với học tập có giám sát Mục tiêu học có giám sát học mơ hình từ liệu huấn luyện gắn nhãn cho phép đưa dự đoán liệu chưa nhìn thấy tương lai Ở đây, thuật ngữ giám sát đề cập đến tập hợp mẫu tín hiệu đầu mong muốn (nhãn) biết Xem xét ví dụ lọc thư rác e-mail, đào tạo mơ hình cách sử dụng thuật tốn học máy giám sát tập hợp e-mail gắn nhãn, e-mail đánh dấu xác thư rác thư rác, để dự đốn liệu e-mail có xuất hay khơng -mail thuộc hai loại Một tác vụ học có giám sát với nhãn lớp riêng biệt, chẳng hạn ví dụ lọc thư rác e-mail trước, gọi tác vụ phân loại Một tiểu thể loại khác học có giám sát hồi quy, tín hiệu kết giá trị liên tục: Phân loại để dự đoán nhãn lớp Phân loại tiểu thể loại học có giám sát mục tiêu dự đốn nhãn lớp phân loại trường hợp dựa quan sát khứ Các nhãn lớp giá trị rời rạc, khơng có thứ tự, hiểu thành viên nhóm cá thể tập hợp quy tắc để phân biệt hai loại có thể: thư rác e-mail khơng phải thư rác [ ] www.it-ebooks.info Machine Translated by Google Cung cấp cho máy tính khả học hỏi từ liệu Tuy nhiên, tập hợp nhãn lớp khơng thiết phải có tính chất nhị phân Mơ hình dự đốn học thuật tốn học có giám sát gán nhãn lớp trình bày tập liệu huấn luyện cho phiên mới, không gắn nhãn Nhiệm vụ phân loại nhiều lớp nhận dạng ký tự viết tay Tại đây, chúng tơi thu thập tập liệu huấn luyện bao gồm nhiều ví dụ viết tay chữ bảng chữ Bây giờ, người dùng cung cấp ký tự viết tay thơng qua thiết bị đầu vào, mơ hình dự đốn chúng tơi dự đốn chữ bảng chữ với độ xác định Tuy nhiên, hệ thống máy học chúng tơi khơng thể nhận dạng xác chữ số từ đến 9, chẳng hạn chúng không nằm tập liệu đào tạo chúng tơi Hình minh họa khái niệm nhiệm vụ phân loại nhị phân với 30 mẫu huấn luyện: 15 mẫu huấn luyện gắn nhãn lớp âm (vòng tròn) 15 mẫu huấn luyện gắn nhãn lớp dương (dấu cộng) thứ nguyên, có nghĩa mẫu có hai giá trị liên kết với nó: x quy tắc—ranh giới định biểu thị dạng đường đứt nét màu đen—có thể tách hai lớp phân x Bây giờ, sử dụng thuật tốn học máy có giám sát để tìm hiểu loại liệu vào loại số hai loại dựa x giá trị: x Hồi quy để dự đoán kết liên tục Chúng ta học phần trước nhiệm vụ phân loại gán nhãn phân loại, khơng có thứ tự cho trường hợp Loại học có giám sát thứ hai dự đoán kết liên tục, cịn gọi phân tích hồi quy Trong phân tích hồi quy, cho số biến dự đốn (giải thích) biến phản ứng liên tục (kết quả) cố gắng tìm mối quan hệ biến cho phép chúng tơi dự đốn kết [ ] www.it-ebooks.info Machine Translated by Google Chương Ví dụ: giả sử quan tâm đến việc dự đoán điểm SAT mơn Tốn học sinh Nếu có mối quan hệ thời gian ôn thi điểm cuối kỳ, sử dụng làm liệu huấn luyện để học mơ hình sử dụng thời gian học để dự đoán điểm thi học sinh tương lai dự định thi kỳ thi Thuật ngữ hồi quy Francis Galton nghĩ viết Hồi quy hướng tới tầm thường tầm vóc di truyền vào năm 1886 Galton mơ tả tượng sinh học chênh lệch chiều cao dân số không tăng theo thời gian, ông quan sát thấy chiều cao cha mẹ không truyền lại cho mà chiều cao giảm dần phía trung bình dân số Hình sau minh họa khái niệm hồi quy tuyến tính Cho biến dự đoán x biến phản hồi y, vẽ đường thẳng tới liệu để giảm thiểu khoảng cách—phổ biến khoảng cách bình phương trung bình—giữa điểm mẫu đường itted Bây sử dụng phần đánh chặn độ dốc học từ liệu để dự đoán biến kết liệu mới: [ ] www.it-ebooks.info Machine Translated by Google Cung cấp cho máy tính khả học hỏi từ liệu Giải vấn đề tương tác học tăng cường Một loại học máy khác học tăng cường Trong học tăng cường, mục tiêu phát triển hệ thống (tác nhân) giúp cải thiện hiệu suất dựa tương tác với mơi trường Vì thơng tin Trạng thái mơi trường thường bao gồm gọi tín hiệu khen thưởng , coi học tăng cường lĩnh vực liên quan đến học có giám sát Tuy nhiên, học tăng cường, phản hồi nhãn giá trị chân lý xác mà thước đo cách Vâng, hành động đo lường chức khen thưởng Thông qua tương tác với môi trường, sau đó, tác nhân sử dụng phương pháp học tăng cường để tìm hiểu loạt hành động nhằm tối đa hóa phần thưởng thơng qua phương pháp thử sai mang tính khám phá lập kế hoạch có chủ ý Một ví dụ phổ biến học tăng cường công cụ cờ vua Ở đây, tác nhân định loạt nước tùy thuộc vào trạng thái bàn cờ (môi trường) phần thưởng xác định thắng thua kết thúc trò chơi : Khám phá cấu trúc ẩn với học tập không giám sát Trong học có giám sát, biết trước câu trả lời huấn luyện mơ hình học tăng cường, xác định thước đo phần thưởng cho hành động cụ thể tác nhân Bằng cách sử dụng kỹ thuật học khơng giám sát, chúng tơi khám phá cấu trúc liệu để trích xuất thơng tin có ý nghĩa mà khơng cần hướng dẫn biến kết hàm phần thưởng biết [ ] www.it-ebooks.info Machine Translated by Google Chương Tìm nhóm với phân cụm Phân cụm kỹ thuật phân tích liệu khám phá cho phép xếp đống thông tin thành nhóm (cụm) có ý nghĩa mà khơng cần có kiến thức trước tư cách thành viên nhóm chúng Mỗi cụm phát sinh q trình phân tích xác định nhóm đối tượng có chung mức độ định giống khác nhiều với đối tượng cụm khác, lý việc phân cụm đơi cịn gọi "phân loại khơng giám sát." Phân cụm kỹ thuật tuyệt vời để cấu trúc thông tin rút mối quan hệ có ý nghĩa liệu Ví dụ: cho phép nhà tiếp thị khám phá nhóm khách hàng dựa sở thích họ để phát triển chương trình tiếp thị riêng biệt Hình minh họa cách phân cụm áp dụng để tổ chức liệu chưa x2 : gắn nhãn thành ba nhóm riêng biệt dựa giống tính x Giảm kích thước để nén liệu Một lĩnh vực phụ khác học không giám sát giảm kích thước Thơng thường, chúng tơi làm việc với liệu có nhiều chiều—mỗi quan sát kèm với số lượng phép đo cao— đặt thách thức không gian lưu trữ hạn chế hiệu suất tính tốn thuật tốn học máy phương pháp thường sử dụng trình tiền xử lý tính để loại bỏ nhiễu khỏi liệu Điều làm giảm hiệu suất dự đoán số thuật toán định nén liệu vào khơng gian có chiều nhỏ giữ lại hầu hết thông tin liên quan [ ] www.it-ebooks.info Machine Translated by Google Cung cấp cho máy tính khả học hỏi từ liệu Đơi khi, việc giảm kích thước hữu ích để trực quan hóa liệu—ví dụ: tính chiều cao chiếu lên khơng gian tính một, hai ba chiều để hiển thị thơng qua biểu đồ phân tán 3D 2D Hình hiển thị ví dụ việc giảm kích thước phi tuyến tính áp dụng để nén Cuộn Thụy Sĩ 3D vào khơng gian tính 2D mới: Giới thiệu thuật ngữ ký hiệu Bây thảo luận ba loại học máy chính—học có giám sát, khơng giám sát tăng cường—chúng ta xem thuật ngữ mà sử dụng chương , ví dụ kinh điển lĩnh vực học máy Tập liệu Iris chứa số đo 150 mống mắt từ ba loài khác nhau: Setosa, Versicolor Viriginica Ở đây, mẫu thấp đại diện cho hàng tập liệu phép đo thấp tính centimet lưu trữ dạng cột mà chúng tơi cịn gọi tính tập liệu: [ ] www.it-ebooks.info Machine Translated by Google Chương Để giữ cho ký hiệu cách thực đơn giản hiệu quả, sử dụng số kiến thức đại số tuyến tính Trong chương sau, sử dụng ma trận ký hiệu vectơ để tham chiếu đến liệu Chúng tuân theo quy ước chung để biểu diễn mẫu dạng hàng riêng biệt ma trận đặc trưng X , tính đâu lưu trữ dạng cột riêng biệt Bộ liệu Iris, bao gồm 150 mẫu tính năng, sau viết dạng ma 150 ×4 trận 150 × X ℝ : [ ] www.it-ebooks.info Machine Translated by Google Đào tạo thuật toán học máy để phân loại Nếu so sánh hình với hình minh họa thuật tốn perceptron mà thấy trước đó, điểm khác biệt biết cách sử dụng đầu có giá trị liên tục từ hàm kích hoạt tuyến tính để tính tốn lỗi mơ hình cập nhật trọng số, thay lớp nhị phân nhãn Giảm thiểu hàm chi phí cách giảm độ dốc Một thành phần thuật tốn học máy có giám sát xác định hàm mục tiêu cần tối ưu hóa q trình học Hàm mục tiêu thường hàm chi phí mà muốn giảm thiểu Trong trường hợp Adaline, xác định hàm chi phí J để tìm hiểu trọng số dạng Tổng sai số bình phương (SSE) kết tính tốn nhãn lớp thực = J (w ) ( Tôi (() Tôi y φ z () Tôi ) ) Thuật ngữ thêm vào để thuận tiện cho chúng ta, làm cho việc tính gradient dễ dàng hơn, thấy đoạn sau Ưu điểm hàm kích hoạt tuyến tính liên tục là—ngược lại với hàm bước đơn vị— chi phí Một đặc tính hay khác hàm chi phí lồi, đó, sử dụng thuật tốn tối ưu hóa đơn giản mạnh mẽ gọi giảm độ dốc để tìm trọng số giúp giảm thiểu hàm chi phí nhằm phân loại mẫu tập liệu Iris Như minh họa hình đây, mơ tả ngun tắc đằng sau việc giảm độ dốc leo xuống đồi đạt chi phí tối thiểu cục toàn cục giá trị tốc độ học độ dốc độ dốc: [ 34 ] www.it-ebooks.info Machine Translated by Google chương Bằng cách sử dụng phương pháp giảm độ dốc, cập nhật trọng số cách rời xa độ dốc J( ) w hàm chi phí J( ) w bước : www := + Δ Ở đây, thay đổi trọng số Δw định nghĩa gradient âm nhân với tốc N: độ học Δ = Δ wJ(w ) N Để tính độ dốc hàm chi phí, cần tính riêng phần ( J wj đạo hàm hàm chi phí trọng số wj để viết cập nhật trọng số wj sau: Δ j =_ N J wj = µ( ( = φ Tơi () y () zx Tôi Tôi () y φ (zx () Tơi Tơi( ) ) ) j Tơi Vì chúng tơi cập nhật đồng thời tất trọng số nên quy tắc học Adaline trở thành www := + Δ [ 35 ] www.it-ebooks.info ) ) Tôi : Tôi( ) j Machine Translated by Google Đào tạo thuật toán học máy để phân loại Đối với người quen thuộc với phép tính, thu đạo hàm riêng hàm chi phí SSE trọng số thứ j sau: J = ôi jj = w = = ( φ (z() ) ) Tôi φ (z() Tôi Tôi ) ) kỷ φ (z() Tôi ) ) φ (z() Tôi w Tôi () y Tôi φ (() z Tôi ( = () = Tôi y( ( φ y () zxj _ _ ) Tôi ) ) wx()_ ()) Tôi jj Tôi Tôi ) ) ( φ (z() j ( wy () j Tôi y Tôi Tôi Tôi ) ) () (() Tôi y Tôi ( Tôi Tôi () y () y (() ( ) ( ) x j ) Tôi( ) Tôi Mặc dù quy tắc học Adaline trông giống hệt quy tắc perceptron, ( ) với z = φ (z ( ) ) T ( ) wx số thực nhãn lớp số nguyên Hơn nữa, việc cập nhật trọng số tính tốn dựa tất mẫu tập huấn luyện (thay cập nhật trọng số tăng dần sau mẫu), lý phương pháp gọi " batch" giảm độ dốc Triển khai nơ-ron tuyến tính thích ứng Python Vì quy tắc perceptron Adaline giống nhau, nên triển khai perceptron mà xác định trước thay đổi phương pháp khớp để trọng số cập nhật cách giảm thiểu hàm chi phí thơng qua việc giảm độ dốc: lớp AdalineGD(đối tượng): """Bộ phân loại LInear NEuron thích ứng Thơng số [ 36 ] www.it-ebooks.info Machine Translated by Google chương eta : Tỷ lệ học tập (từ 0,0 đến 1,0) n_iter : int Truyền qua tập liệu huấn luyện Thuộc tính -w_ : Trọng số mảng 1d sau khớp error_ : danh sách Số lượng phân loại sai kỷ nguyên """ def init (self, eta=0,01, n_iter=50): self.eta = eta self.n_iter = n_iter def fit(self, X, y): """ Fit liệu huấn luyện Thông số -X : {dạng mảng}, hình dạng = [n_samples, n_features] Các vectơ huấn luyện, n_samples số lượng mẫu n_features số lượng đặc điểm y : giống mảng, hình dạng = [n_samples] Các giá trị mục tiêu Trả lại - thân: đối tượng """ self.w_ = np.zeros(1 + X.shape[1]) self.cost_ = [] cho phạm vi (self.n_iter): đầu = self.net_input(X) lỗi = (y đầu ra) self.w_[1:] += self.eta * XTdot(errors) self.w_[0] += self.eta * error.sum() [ 37 ] www.it-ebooks.info Machine Translated by Google Đào tạo thuật tốn học máy để phân loại chi phí = (lỗi**2).sum() / 2.0 self.cost_.append(chi phí) tự trở def net_input(self, X): """Tính tốn đầu vào rịng""" trả np.dot(X, self.w_[1:]) + self.w_[0] kích hoạt def (tự, X): """Tính tốn kích hoạt tuyến tính""" trả self.net_input(X) dự đốn chắn (tự, X): """Trả lại nhãn lớp sau bước đơn vị""" trả np.where(self.activation(X) >= 0,0, 1, -1) Thay cập nhật trọng số sau đánh giá mẫu huấn luyện riêng lẻ, perceptron, chúng tơi tính tốn độ dốc dựa tồn tập liệu huấn luyện thông qua self.eta *error.sum() cho trọng số thông qua self.eta * XTdot( lỗi) cho trọng số từ đến m XTdot(lỗi) phép nhân vectơ-ma trận ma trận đặc trưng vectơ lỗi Tương tự cách triển khai perceptron trước đó, chúng tơi thu thập giá trị chi phí danh sách self.cost_ để kiểm tra xem thuật tốn có hội tụ sau đào tạo hay không Việc thực phép nhân vectơ-ma trận tương tự tính tốn tích vectơ chấm hàng ma trận coi vectơ hàng đơn Cách tiếp cận vector hóa biểu thị ký hiệu nhỏ gọn mang lại tính tốn hiệu cách sử dụng NumPy Ví dụ: × = ×7 +2 ×8 × + ×7 +5 ×8 × + = 50 122 [ 38 ] www.it-ebooks.info Machine Translated by Google chương Trong thực tế, thường địi hỏi số thử nghiệm để tìm mức hội tụ tối ưu N N = 0,1 N = 0,0001 cho tốc độ học tốt Vì vậy, chọn hai tốc độ học khác để bắt đầu vẽ đồ thị hàm chi phí so với số kỷ nguyên để xem việc triển khai Adaline học tốt từ liệu huấn luyện Tốc độ học tập N , số lượng kỷ nguyên n_iter gọi siêu tham số thuật toán học perceptron Adaline Trong Chương 4, Xây dựng tập huấn luyện tốt—Tiền xử lý liệu, xem xét kỹ thuật khác để tự động tìm giá trị siêu tham số khác mang lại hiệu suất tối ưu mơ hình phân loại Bây vẽ biểu đồ chi phí theo số kỷ nguyên cho hai tốc độ học tập khác nhau: >>> fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(8, 4)) >>> ada1 = AdalineGD(n_iter=10, eta=0,01).fit(X, y) >>> ax[0].plot(range(1, len(ada1.cost_) + 1), np.log10(ada1.cost_), marker='o') >>> ax[0].set_xlabel('Epochs') >>> ax[0].set_ylabel('log(Sum-squared-error)') >>> ax[0].set_title('Adaline - Tỷ lệ học 0,01') >>> ada2 = AdalineGD(n_iter=10, eta=0,0001).fit(X, y) >>> ax[1].plot(range(1, len(ada2.cost_) + 1), ada2.cost_, marker='o') >>> ax[1].set_xlabel('Epochs') >>> ax[1].set_ylabel('Lỗi tổng bình phương') >>> ax[1].set_title('Adaline - Tốc độ học tập 0,0001') >>> plt.show() [ 39 ] www.it-ebooks.info Machine Translated by Google Đào tạo thuật toán học máy để phân loại Như thấy đồ thị hàm chi phí thu tiếp theo, gặp phải hai loại vấn đề khác Biểu đồ bên trái cho thấy điều xảy chọn tốc độ học lớn—thay giảm thiểu hàm chi phí, sai số trở nên lớn kỷ ngun chúng tơi vượt mức tối thiểu toàn cầu: Mặc dù thấy chi phí giảm nhìn vào biểu đồ bên phải, tốc độ N = 0,0001 nhỏ nên thuật toán yêu cầu học chọn có số lượng lớn kỷ nguyên hội tụ Hình minh họa cách thay đổi giá trị tham số trọng số cụ thể để giảm thiểu hàm chi phí J (hình bên trái) Hình bên phải minh họa điều xảy chọn tốc độ học lớn, vượt mức tối thiểu toàn cục: [ 40 ] www.it-ebooks.info Machine Translated by Google chương Nhiều thuật toán học máy mà gặp sách yêu cầu số loại tính mở rộng để có hiệu suất tối ưu, thảo luận chi tiết Chương 3, Chuyến tham quan trình phân loại học máy Scikit-learn Giảm dần độ dốc nhiều thuật toán hưởng lợi từ việc chia tỷ lệ tính Ở đây, chúng tơi sử dụng phương pháp chia tỷ lệ đối tượng gọi tiêu chuẩn hóa, phương pháp cung cấp cho liệu chúng tơi thuộc tính phân phối chuẩn chuẩn Giá trị trung bình đối tượng giá trị cột đối tượng có độ lệch chuẩn Đối với Ví dụ, để chuẩn hóa tính thứ j , cần trừ mẫu khỏi mẫu huấn luyện µj nghĩa σj: chia cho độ lệch chuẩn ' x µj xj = j σj Đây x jlà vectơ bao gồm giá trị đặc trưng thứ j tất mẫu huấn luyện n Việc tiêu chuẩn hóa dễ dàng đạt cách sử dụng phương thức NumPy std : >>> X_std = np.copy(X) >>> X_std[:,0] = (X[:,0] - X[:,0].mean()) / X[:,0].std() >>> X_std[:,1] = (X[:,1] - X[:,1].mean()) / X[:,1].std() Sau chuẩn hóa, huấn luyện lại Adaline thấy hội tụ tốc độ học tập N = 0,01: >>> ada = AdalineGD(n_iter=15, eta=0,01) >>> ada.fit(X_std, y) >>> lô_decision_khu vực(X_std, y, classifier=ada) >>> plt.title('Adaline - Giảm dần độ dốc') >>> plt.xlabel('độ dài đài hoa [chuẩn hóa]') >>> plt.ylabel('chiều dài cánh hoa [chuẩn hóa]') >>> plt.legend(loc='phía bên trái') >>> plt.show() >>> plt.plot(range(1, len(ada.cost_) + 1), ada.cost_, marker='o') >>> plt.xlabel('Epochs') >>> plt.ylabel('Lỗi tổng bình phương') >>> plt.show() [ 41 ] www.it-ebooks.info Machine Translated by Google Đào tạo thuật toán học máy để phân loại Sau thực thi đoạn mã trước, thấy hình ảnh vùng định biểu đồ chi phí giảm dần, thể hình sau: Như thấy biểu đồ trước, Adaline hội tụ sau huấn luyện N tính tiêu chuẩn hóa với tốc độ học tập = 0, 01 Tuy nhiên, lưu ý SSE khác tất mẫu phân loại xác Học máy quy mơ lớn giảm độ dốc ngẫu nhiên Trong phần trước, học cách giảm thiểu hàm chi phí cách thực bước theo hướng ngược lại với độ dốc tính tốn từ tồn tập huấn luyện; lý phương pháp đơi cịn gọi giảm độ dốc hàng loạt Bây giờ, tưởng tượng có tập liệu lớn với hàng triệu điểm liệu, điều không phổ biến nhiều ứng dụng học máy Việc chạy giảm dần độ dốc hàng loạt tốn mặt tính tốn tình cần đánh giá lại toàn tập liệu huấn luyện lấy tập liệu bước tới mức tối thiểu toàn cầu Một giải pháp thay phổ biến cho thuật toán giảm độ dốc hàng loạt giảm độ dốc ngẫu nhiên, gọi giảm độ dốc lặp trực tuyến Thay cập nhật trọng số x : ( ) tơi dựa tổng lỗi tích lũy tất mẫu Δ w= N () Tôi ( y φ (z () Tôi Tôi Chúng cập nhật trọng số tăng dần cho mẫu đào tạo: ( ) N (( ) y z φ ) ( ) x Tôi Tôi [ 42 ] www.it-ebooks.info x ( ), Tôi ) ) Tôi( ) Machine Translated by Google chương Mặc dù việc giảm độ dốc ngẫu nhiên coi gần việc giảm độ dốc, thường đạt đến hội tụ nhanh nhiều cập nhật trọng số thường xuyên điều có ưu điểm việc giảm độ dốc ngẫu nhiên khỏi cực tiểu cục nơng dễ dàng cho kỷ nguyên để ngăn chặn chu kỳ Trong triển khai giảm độ dốc ngẫu nhiên, tốc độ học tập hợp thường N thay tốc độ học thích ứng giảm dần theo thời gian, c1 ví dụ: [ ] số lần lặp + c đó2 c c số Lưu ý độ dốc giảm dần ngẫu nhiên không đạt đến mức tối thiểu toàn cầu mà khu vực gần với Bằng cách sử dụng tốc độ học thích ứng, đạt q trình ủ đến mức tối thiểu tồn cầu tốt Một ưu điểm khác phương pháp giảm độ dốc ngẫu nhiên sử dụng cho việc học trực tuyến Trong học tập trực tuyến, mơ hình đào tạo trực tiếp có liệu đào tạo Điều đặc biệt hữu ích tích lũy lượng lớn liệu—ví dụ: , liệu khách hàng ứng dụng web điển hình Sử dụng học tập trực tuyến, hệ thống thích ứng với thay đổi liệu đào tạo bị loại bỏ sau cập nhật mơ hình có vấn đề dung lượng lưu trữ Sự kết hợp giảm độ dốc hàng loạt giảm độ dốc ngẫu nhiên gọi học theo đợt nhỏ Học theo đợt nhỏ hiểu áp dụng giảm độ dốc theo lô cho tập hợp nhỏ liệu huấn luyện—ví dụ: 50 mẫu lúc Ưu điểm việc giảm độ dốc hàng loạt hội tụ đạt nhanh thông qua lô nhỏ cập nhật trọng số thường xuyên Hơn nữa, việc học theo đợt nhỏ cho phép thay vòng lặp for mẫu huấn luyện Stochastic gradient Descent (SGD) phép toán vector hóa, điều cải thiện hiệu tính tốn thuật tốn học [ 43 ] www.it-ebooks.info Machine Translated by Google Đào tạo thuật toán học máy để phân loại Vì chúng tơi triển khai quy tắc học Adaline cách sử dụng phương pháp giảm độ dốc, nên cần thực số điều chỉnh để sửa đổi thuật toán học nhằm cập nhật trọng số thông qua phương pháp giảm độ dốc ngẫu nhiên Bên phương pháp phù hợp, cập nhật trọng số sau mẫu huấn luyện Hơn nữa, triển khai phương pháp part_fit bổ sung, không khởi tạo lại trọng số cho việc học trực tuyến Để kiểm tra xem thuật tốn chúng tơi có hội tụ sau đào tạo hay khơng, chúng tơi tính chi phí chi phí trung bình mẫu đào tạo kỷ nguyên Hơn nữa, thêm tùy chọn xáo trộn liệu huấn luyện trước kỷ nguyên để tránh chu kỳ chúng tơi tối ưu hóa hàm chi phí; thơng qua Random_state tham số, cho phép đặc tả hạt giống ngẫu nhiên để đảm bảo tính quán: từ hạt giống nhập numpy.random lớp AdalineSGD(đối tượng): """Bộ phân loại LInear NEuron thích ứng Thơng số -eta : Tỷ lệ học tập (từ 0,0 đến 1,0) n_iter : int Chuyển qua tập liệu huấn luyện Thuộc tính -w_ : mảng 1d Trọng lượng sau lắp lỗi_ : danh sách Số lượng phân loại sai kỷ nguyên xáo trộn : bool (mặc định: Đúng) Xáo trộn liệu huấn luyện kỷ nguyên Đúng để ngăn chặn chu kỳ Random_state : int (mặc định: Khơng có) Đặt trạng thái ngẫu nhiên để xáo trộn khởi tạo trọng số """ def init (self, eta=0,01, n_iter=10, shuffle=True, Random_state=None): self.eta = eta self.n_iter = n_iter self.w_initialized = Sai self.shuffle = xáo trộn [ 44 ] www.it-ebooks.info Machine Translated by Google chương trạng thái ngẫu nhiên: hạt giống (trạng thái ngẫu nhiên) def fit(self, X, y): """ Fit liệu huấn luyện Thông số -X : {dạng mảng}, hình dạng = [n_samples, n_features] Các vectơ huấn luyện, n_samples số lượng mẫu n_features số lượng đặc điểm y : giống mảng, hình dạng = [n_samples] Các giá trị mục tiêu Trả lại - thân: đối tượng """ self._initialize_weights(X.shape[1]) self.cost_ = [] cho i phạm vi (self.n_iter): tự.shuffle: X, y = self._shuffle(X, y) chi phí = [] xi, mục tiêu dạng zip(X, y): cost.append(self._update_weights(xi, target)) avg_cost = sum(cost)/ len(y) self.cost_.append(avg_cost) tự trả def phần_fit(self, X, y): """Khớp liệu huấn luyện mà không cần khởi tạo lại trọng số""" self.w_initialized: self._initialize_weights(X.shape[1]) y.ravel().shape[0] > 1: xi, mục tiêu zip(X, y): self._update_weights(xi, target) khác: self._update_weights(X, y) tự trở def _shuffle(self, X, y): [ 45 ] www.it-ebooks.info Machine Translated by Google Đào tạo thuật toán học máy để phân loại """Xáo trộn liệu huấn luyện""" r = np.random.permutation(len(y)) return X[r], y[r] def _initialize_weights(self, m): """Khởi tạo trọng số số 0""" self.w_ = np.zeros(1 + m) self.w_initialized = True def _update_weights(self, xi, target): """Áp dụng quy tắc học Adaline để cập nhật trọng số""" out = self.net_input(xi) error = (target - out) self.w_[1:] += self.eta * xi.dot(error) self lỗi w_[0] += self.eta * chi phí = 0,5 * lỗi**2 chi phí hồn trả def net_input(self, X): """Tính tốn đầu vào mạng""" return np.dot(X, self.w_[1:]) + self.w_[0] def kích hoạt(self, X): """Tính tốn kích hoạt tuyến tính""" return self.net_input(X) dự đốn chắn (tự, X): """Trả nhãn lớp sau bước đơn vị""" return np.where(self.activation(X) >= 0.0, 1, -1) Phương thức _shuffle mà chúng tơi sử dụng trình phân loại AdalineSGD hoạt động sau: thơng qua hàm hốn vị numpy.random, tạo chuỗi ngẫu nhiên gồm số phạm vi từ đến 100 Sau đó, số sử dụng làm số để xáo trộn ma trận đặc trưng vectơ nhãn lớp Sau đó, sử dụng phương thức it để huấn luyện trình phân loại AdalineSGD sử dụng cốt truyện_decision_khu vực để vẽ kết huấn luyện mình: >>> ada = AdalineSGD(n_iter=15, eta=0,01, Random_state=1) >>> ada.fit(X_std, y) >>>plot_decision_zones(X_std, y, classifier=ada) >>> plt.title( 'Adaline - Giảm dần độ dốc ngẫu nhiên') >>> plt.xlabel('độ dài cánh hoa [được chuẩn hóa]') >>> plt.ylabel('độ dài cánh hoa [được chuẩn hóa]') [ 46 ] www.it-ebooks.info Machine Translated by Google chương >>> plt.legend(loc='phía bên trái') >>> plt.show() >>> plt.plot(range(1, len(ada.cost_) + 1), ada.cost_, marker='o') >>> plt.xlabel('Epochs') >>> plt.ylabel('Chi phí trung bình') >>> plt.show() Hai biểu đồ mà thu từ việc thực thi ví dụ mã trước hiển thị hình sau: Như thấy, chi phí trung bình giảm xuống nhanh ranh giới định cuối sau 15 kỷ nguyên trông tương tự việc giảm độ dốc hàng loạt với Adaline Nếu muốn cập nhật mơ hình mình—ví dụ: kịch học tập trực tuyến với liệu truyền trực tuyến—chúng ta cần gọi phương thứcpart_fit mẫu—ví dụ: ada.partial_fit(X_std[0, :], y[0 ]) Bản tóm tắt Trong chương này, hiểu rõ khái niệm phân lớp tuyến tính cho việc học có giám sát Bây thấy cách triển khai trình phân loại đơn giản Python, sẵn sàng chuyển sang chương tiếp theo, nơi sử dụng thư viện máy học Python scikit-learn để có quyền truy cập vào ứng dụng ngoại tuyến tiên tiến mạnh mẽ lớp học máy thường sử dụng học viện công nghiệp [ 47 ] www.it-ebooks.info Machine Translated by Google www.it-ebooks.info

Ngày đăng: 08/11/2023, 21:32

Tài liệu cùng người dùng

Tài liệu liên quan