Thứ năm, 28/09/2017 | 00:00 GMT+7

Giới thiệu về Học máy

Học máy là một lĩnh vực con của trí tuệ nhân tạo (AI). Mục tiêu của học máy nói chung là hiểu cấu trúc của dữ liệu và điều chỉnh dữ liệu đó thành các mô hình mà con người có thể hiểu và sử dụng.

Mặc dù học máy là một lĩnh vực trong repository a học máy tính, nó khác với các phương pháp tiếp cận tính toán truyền thống. Trong máy tính truyền thống, thuật toán là tập hợp các lệnh được lập trình rõ ràng được máy tính sử dụng để tính toán hoặc giải quyết vấn đề. Thay vào đó, các thuật toán học máy cho phép máy tính đào tạo về đầu vào dữ liệu và sử dụng phân tích thống kê để đưa ra các giá trị nằm trong một phạm vi cụ thể. Do đó, máy học tạo điều kiện cho máy tính xây dựng mô hình từ dữ liệu mẫu để tự động hóa quy trình ra quyết định dựa trên dữ liệu đầu vào.

Bất kỳ user công nghệ nào ngày nay đều được hưởng lợi từ học máy. Công nghệ nhận dạng khuôn mặt cho phép các nền tảng truyền thông xã hội giúp user gắn thẻ và chia sẻ ảnh của bạn bè. Công nghệ nhận dạng ký tự quang học (OCR) chuyển đổi hình ảnh của văn bản thành loại có thể di chuyển được. Công cụ đề xuất, được hỗ trợ bởi máy học, đề xuất những bộ phim hoặc chương trình truyền hình nào sẽ xem tiếp theo dựa trên sở thích của user . Xe ô tô tự lái dựa trên công nghệ máy học để chuyển có thể sớm ra mắt người tiêu dùng.

Học máy là một lĩnh vực liên tục phát triển. Do đó, có một số cân nhắc cần lưu ý khi bạn làm việc với các phương pháp học máy hoặc phân tích tác động của các quy trình học máy.

Trong hướng dẫn này, ta sẽ xem xét các phương pháp học máy phổ biến của học có giám sát và không giám sát cũng như các phương pháp tiếp cận thuật toán phổ biến trong học máy, bao gồm thuật toán k-hàng xóm gần nhất, học cây quyết định và học sâu. Ta sẽ khám phá ngôn ngữ lập trình nào được sử dụng nhiều nhất trong học máy, cung cấp cho bạn một số thuộc tính tích cực và tiêu cực của mỗi ngôn ngữ. Ngoài ra, ta sẽ thảo luận về các thành kiến tồn tại bởi các thuật toán học máy và xem xét những điều cần lưu ý để ngăn chặn những sai lệch này khi xây dựng thuật toán.

Phương pháp học máy

Trong học máy, các việc thường được phân thành các loại rộng. Các danh mục này dựa trên cách tiếp nhận việc học hoặc cách phản hồi về kết quả học tập được cung cấp cho hệ thống được phát triển.

Hai trong số các phương pháp học máy được áp dụng rộng rãi nhất là học có giám sát đào tạo các thuật toán dựa trên dữ liệu đầu vào và kết quả ví dụ được gắn nhãn bởi con người và phương pháp học không giám sát cung cấp thuật toán không có dữ liệu được gắn nhãn để cho phép nó tìm thấy cấu trúc trong đầu vào của nó dữ liệu. Hãy cùng khám phá các phương pháp này chi tiết hơn.

Học tập có giám sát

Trong học tập có giám sát, máy tính được cung cấp các đầu vào mẫu được gắn nhãn với các kết quả mong muốn của chúng. Mục đích của phương pháp này là để thuật toán có thể “học” bằng cách so sánh kết quả thực tế của nó với kết quả “được dạy” để tìm lỗi và sửa đổi mô hình cho phù hợp. Do đó, học tập có giám sát sử dụng các mẫu để dự đoán giá trị nhãn trên dữ liệu bổ sung không được gắn nhãn.

Ví dụ: với học có giám sát, một thuật toán có thể được cung cấp dữ liệu với hình ảnh cá mập được dán nhãn là fish và hình ảnh của các đại dương được dán nhãn là water . Bằng cách được đào tạo về dữ liệu này, thuật toán học tập có giám sát sẽ có thể xác định sau này hình ảnh cá mập không được gắn nhãn là fish và hình ảnh đại dương không được gắn nhãn là water .

Một trường hợp sử dụng phổ biến của học có giám sát là sử dụng dữ liệu lịch sử để dự đoán các sự kiện có khả năng xảy ra trong tương lai về mặt thống kê. Nó có thể sử dụng thông tin thị trường chứng khoán lịch sử để dự đoán những biến động sắp tới hoặc được sử dụng để lọc các email spam. Trong quá trình học có giám sát, ảnh về chó được gắn thẻ được dùng làm dữ liệu đầu vào để phân loại ảnh không được gắn thẻ về chó.

Học tập không giám sát

Trong học tập không giám sát, dữ liệu không được gắn nhãn, vì vậy thuật toán học tập được để lại để tìm điểm chung giữa các dữ liệu đầu vào của nó. Vì dữ liệu không được gắn nhãn nhiều hơn dữ liệu được gắn nhãn, nên các phương pháp học máy hỗ trợ việc học không có giám sát đặc biệt có giá trị.

Mục tiêu của học không giám sát có thể đơn giản như khám phá các mẫu ẩn trong tập dữ liệu, nhưng nó cũng có thể có mục tiêu là học đặc trưng, cho phép máy tính toán tự động phát hiện ra các biểu diễn cần thiết để phân loại dữ liệu thô.

Học không giám sát thường được sử dụng cho dữ liệu giao dịch. Bạn có thể có một tập dữ liệu lớn về khách hàng và các giao dịch mua của họ, nhưng là một con người, bạn sẽ không thể hiểu những thuộc tính tương tự nào có thể được rút ra từ profile khách hàng và các loại mua hàng của họ. Với dữ liệu này được đưa vào một thuật toán học tập không giám sát, có thể xác định rằng phụ nữ ở một độ tuổi nhất định mua xà phòng không mùi có khả năng đang mang thai và do đó, một chiến dịch tiếp thị liên quan đến sản phẩm mang thai và trẻ em có thể được nhắm đến đến đối tượng này theo thứ tự để tăng số lượng mua hàng của họ.

Nếu không được nói câu trả lời “đúng”, các phương pháp học tập không giám sát có thể xem xét dữ liệu phức tạp có độ mở rộng hơn và dường như không liên quan để sắp xếp nó theo những cách có ý nghĩa. Học tập không giám sát thường được sử dụng để phát hiện bất thường bao gồm cả việc mua hàng gian lận bằng thẻ tín dụng và hệ thống giới thiệu đề xuất sản phẩm nào nên mua tiếp theo. Trong quá trình học tập không giám sát, các bức ảnh không được gắn thẻ của các chú chó được dùng làm dữ liệu đầu vào cho thuật toán để tìm ra các nét giống và phân loại các bức ảnh về chú chó với nhau.

Phương pháp tiếp cận

Là một lĩnh vực, học máy liên quan chặt chẽ đến thống kê tính toán, do đó, có kiến thức nền tảng về thống kê sẽ hữu ích để hiểu và tận dụng các thuật toán học máy.

Đối với những người có thể chưa nghiên cứu thống kê, có thể hữu ích trước tiên là xác định mối tương quan và hồi quy, vì chúng là những kỹ thuật thường được sử dụng để điều tra mối quan hệ giữa các biến định lượng. Tương quan là thước đo sự kết hợp giữa hai biến không được chỉ định là phụ thuộc hoặc độc lập. Hồi quy ở mức cơ bản được sử dụng để kiểm tra mối quan hệ giữa một biến phụ thuộc và một biến độc lập. Bởi vì thống kê hồi quy được dùng để dự đoán biến phụ thuộc khi biến độc lập đã biết, nên hồi quy cho phép khả năng dự đoán.

Các phương pháp tiếp cận học máy liên tục được phát triển. Đối với mục đích của ta , ta sẽ xem xét một số cách tiếp cận phổ biến đang được sử dụng trong học máy tại thời điểm viết bài.

k-hàng xóm gần nhất

Thuật toán lân cận k-gần nhất là một mô hình nhận dạng mẫu được dùng để phân loại cũng như hồi quy. Thường được viết tắt là k-NN, k trong k-lân cận gần nhất là một số nguyên dương, thường nhỏ.Trong phân loại hoặc hồi quy, đầu vào sẽ bao gồm k ví dụ huấn luyện gần nhất trong một khoảng trắng.

Ta sẽ tập trung vào phân loại k-NN. Trong phương thức này, kết quả là thành viên lớp. Điều này sẽ gán một đối tượng mới cho lớp phổ biến nhất trong số k láng giềng gần nhất của nó. Trong trường hợp k = 1, đối tượng được gán cho lớp của một láng giềng gần nhất.

Hãy xem một ví dụ về k-hàng xóm gần nhất. Trong sơ đồ dưới đây, có các vật thể kim cương màu xanh lam và các vật thể ngôi sao màu cam. Chúng thuộc về hai lớp riêng biệt: lớp kim cương và lớp sao.

k-tập dữ liệu ban đầu láng giềng gần nhất

Khi một đối tượng mới được thêm vào không gian - trong trường hợp này là trái tim màu xanh lá cây - ta sẽ muốn thuật toán học máy phân loại trái tim thành một lớp nhất định.

k-tập dữ liệu láng giềng gần nhất với đối tượng mới để phân loại

Khi ta chọn k = 3, thuật toán sẽ tìm ba lân cận gần nhất của trái tim màu xanh lá cây để phân loại nó vào lớp kim cương hoặc lớp sao.

Trong sơ đồ của ta , ba láng giềng gần nhất của trái tim màu xanh lá cây là một hình thoi và hai ngôi sao. Do đó, thuật toán sẽ phân loại trái tim với hạng sao.

k-tập dữ liệu láng giềng gần nhất với phân loại hoàn chỉnh

Trong số các thuật toán máy học cơ bản nhất, k-láng giềng gần nhất được coi là một loại “lười học” vì sự tổng quát hóa ngoài dữ liệu huấn luyện không xảy ra cho đến khi một truy vấn được thực hiện cho hệ thống.

Học cây quyết định

Để sử dụng chung, cây quyết định được sử dụng để trình bày trực quan các quyết định và hiển thị hoặc thông báo cho việc ra quyết định. Khi làm việc với máy học và khai thác dữ liệu, cây quyết định được sử dụng như một mô hình dự đoán. Các mô hình này ánh xạ các quan sát về dữ liệu với kết luận về giá trị mục tiêu của dữ liệu.

Mục tiêu của việc học cây quyết định là tạo ra một mô hình dự đoán giá trị của mục tiêu dựa trên các biến đầu vào.

Trong mô hình dự đoán, các thuộc tính của dữ liệu được xác định thông qua quan sát được đại diện bởi các nhánh, trong khi kết luận về giá trị mục tiêu của dữ liệu được biểu diễn trong các lá.

Khi “học” một cây, dữ liệu nguồn được chia thành các tập con dựa trên một bài kiểm tra giá trị thuộc tính, được lặp lại trên mỗi tập con dẫn xuất một cách đệ quy. Khi tập con tại một nút có giá trị tương đương với giá trị đích của nó, quá trình đệ quy sẽ hoàn tất.

Hãy xem một ví dụ về các điều kiện khác nhau có thể xác định xem ai đó có nên đi câu cá hay không. Điều này bao gồm điều kiện thời tiết cũng như điều kiện khí áp.

ví dụ cây quyết định câu cá

Trong cây quyết định đơn giản ở trên, một ví dụ được phân loại bằng cách sắp xếp nó qua cây đến nút lá thích hợp. Sau đó, điều này sẽ trả về phân loại được liên kết với lá cụ thể, trong trường hợp này là Yes hoặc No . Cây phân loại các điều kiện trong ngày dựa trên việc nó có thích hợp để đi câu hay không.

Một tập dữ liệu cây phân loại thực sự sẽ có nhiều tính năng hơn những gì được nêu ở trên, nhưng các mối quan hệ phải đơn giản để xác định.Khi làm việc với học cây quyết định, cần phải thực hiện một số quyết định, bao gồm những tính năng nào để chọn, điều kiện nào để sử dụng cho việc phân tách và hiểu khi nào cây quyết định đã đạt đến một kết thúc rõ ràng.

Học kĩ càng

Học sâu cố gắng bắt chước cách bộ não con người có thể xử lý các kích thích ánh sáng và âm thanh thành thị giác và thính giác. Kiến trúc học sâu được lấy cảm hứng từ mạng nơ-ron sinh học và bao gồm nhiều lớp trong mạng nơ-ron nhân tạo được tạo thành từ phần cứng và GPU.

Học sâu sử dụng một loạt các lớp đơn vị xử lý phi tuyến để extract hoặc chuyển đổi các tính năng (hoặc biểu diễn) của dữ liệu. Đầu ra của một lớp đóng role là đầu vào của lớp kế tiếp. Trong học tập sâu, các thuật toán có thể được giám sát và phục vụ để phân loại dữ liệu hoặc không được giám sát và thực hiện phân tích mẫu.

Trong số các thuật toán học máy hiện đang được sử dụng và phát triển, học sâu hấp thụ nhiều dữ liệu nhất và có thể đánh bại con người trong một số nhiệm vụ nhận thức. Do những thuộc tính này, học sâu đã trở thành phương pháp tiếp cận có tiềm năng đáng kể trong không gian trí tuệ nhân tạo

Thị giác máy tính và nhận dạng giọng nói đều đã nhận ra những tiến bộ đáng kể từ phương pháp học sâu. IBM Watson là một ví dụ nổi tiếng về hệ thống thúc đẩy học sâu.

Ngôn ngữ lập trình

Khi chọn một ngôn ngữ chuyên về học máy, bạn có thể cần xem xét các kỹ năng được liệt kê trên các quảng cáo tuyển dụng hiện tại cũng như các thư viện có sẵn bằng nhiều ngôn ngữ khác nhau được dùng cho các quy trình học máy.

Từ dữ liệu được lấy từ các quảng cáo việc làm trên Indeed.com vào tháng 12 năm 2016, có thể suy ra rằng Python là ngôn ngữ lập trình được tìm kiếm nhiều nhất trong lĩnh vực học máy chuyên nghiệp. Theo sau Python là Java, sau đó là R, sau đó là C ++.

Sự phổ biến của Python có thể là do sự phát triển ngày càng tăng của các khung học sâu có sẵn cho ngôn ngữ này gần đây, bao gồm TensorFlow , PyTorchKeras . Là một ngôn ngữ có cú pháp có thể đọc được và khả năng được sử dụng như một ngôn ngữ kịch bản, Python chứng tỏ là mạnh mẽ và đơn giản cho cả việc xử lý trước dữ liệu và làm việc với dữ liệu trực tiếp. Thư viện máy học scikit- learning được xây dựng dựa trên một số gói Python hiện có mà các nhà phát triển Python có thể đã quen thuộc, đó là NumPy , SciPyMatplotlib .

Để bắt đầu với Python, bạn có thể đọc loạt bài hướng dẫn của ta về “ Cách viết mã trong Python 3 ” hoặc đọc cụ thể về “ Cách tạo bộ phân loại học máy bằng Python với scikit-learning ” hoặc “ Cách thực hiện chuyển kiểu thần kinh với Python 3 và PyTorch . ”

Java được sử dụng rộng rãi trong lập trình doanh nghiệp và thường được sử dụng bởi các nhà phát triển ứng dụng máy tính để bàn front-end, những người cũng đang làm việc về học máy ở cấp doanh nghiệp. Thông thường nó không phải là lựa chọn đầu tiên cho những người mới học lập trình muốn tìm hiểu về học máy, nhưng lại được những người có nền tảng về phát triển Java ưa chuộng để áp dụng vào học máy. Về các ứng dụng học máy trong công nghiệp, Java có xu hướng được sử dụng nhiều hơn Python cho bảo mật mạng, bao gồm cả trong các trường hợp sử dụng phát hiện gian lận và tấn công mạng.

Trong số các thư viện học máy cho Java có Deeplearning4j , một thư viện học sâu phân tán và open-souce được viết cho cả Java và Scala; MALLET ( MA chine L kiếm được cho L anguag E T oolkit) cho phép các ứng dụng học máy trên văn bản, bao gồm xử lý ngôn ngữ tự nhiên, mô hình hóa chủ đề, phân loại tài liệu và phân cụm; và Weka , một tập hợp các thuật toán học máy để sử dụng cho các việc khai thác dữ liệu.

R là một ngôn ngữ lập trình open-souce được sử dụng chủ yếu cho tính toán thống kê. Nó đã trở nên phổ biến trong những năm gần đây và được nhiều người trong giới học thuật ưa chuộng. R thường không được sử dụng trong môi trường production công nghiệp, nhưng đã tăng lên trong các ứng dụng công nghiệp do sự quan tâm ngày càng tăng trong repository a học dữ liệu. Các gói phổ biến cho học máy trong R bao gồm dấu mũ (viết tắt của C lassification A nd RE gression T rain) để tạo mô hình dự đoán, randomForest để phân loại và hồi quy, và e1071 bao gồm các hàm cho thống kê và lý thuyết xác suất.

C ++ là ngôn ngữ được lựa chọn cho học máy và trí tuệ nhân tạo trong các ứng dụng trò chơi hoặc rô bốt (bao gồm cả vận động rô bốt). Các nhà phát triển phần cứng máy tính nhúng và kỹ sư điện tử có nhiều khả năng ủng hộ C ++ hoặc C hơn trong các ứng dụng học máy do trình độ và mức độ kiểm soát của họ trong ngôn ngữ này. Một số thư viện học máy mà bạn có thể sử dụng với C ++ bao gồm mlpack có thể mở rộng, Dlib cung cấp các thuật toán học máy trên phạm vi rộng và Shark open-souce và module .

Thành kiến con người

Mặc dù dữ liệu và phân tích tính toán có thể khiến ta nghĩ rằng ta đang nhận được thông tin khách quan, nhưng thực tế không phải vậy; dựa trên dữ liệu không nghĩa là kết quả kết quả của máy học là trung tính. Thành kiến của con người đóng một role trong cách dữ liệu được thu thập, tổ chức và cuối cùng là trong các thuật toán xác định cách học máy sẽ tương tác với dữ liệu đó.

Ví dụ: nếu mọi người đang cung cấp hình ảnh cho “cá” làm dữ liệu để đào tạo một thuật toán và những người này chọn quá nhiều hình ảnh về cá vàng, thì máy tính có thể không phân loại cá mập thành cá. Điều này sẽ tạo ra thành kiến đối với cá mập là cá, và cá mập sẽ không được tính là cá.

Khi sử dụng ảnh lịch sử của các nhà khoa học làm dữ liệu đào tạo, máy tính có thể không phân loại chính xác các nhà khoa học là người da màu hay phụ nữ. Trên thực tế, nghiên cứu được đánh giá ngang hàng gần đây đã cho biết các chương trình AI và máy học thể hiện những thành kiến giống con người bao gồm định kiến về chủng tộc và giới tính. Ví dụ, hãy xem “ Ngữ nghĩa được lấy tự động từ kho ngữ liệu chứa thành kiến giống con người ” và “ Đàn ông cũng thích mua sắm: Giảm khuếch đại khuynh hướng giới tính bằng cách sử dụng Ràng buộc cấp độ tập thể ” [PDF].

Khi công nghệ máy học ngày càng được tận dụng trong kinh doanh, những thành kiến không thận trọng có thể gây ra các vấn đề hệ thống khiến mọi người không đủ điều kiện vay vốn, không được hiển thị quảng cáo cho các cơ hội việc làm được trả lương cao hoặc nhận được các tùy chọn giao hàng trong ngày.

Bởi vì thành kiến của con người có thể tác động tiêu cực đến người khác, điều cực kỳ quan trọng là phải nhận thức được điều đó và cũng cố gắng loại bỏ nó càng nhiều càng tốt. Một cách để đạt được điều này là đảm bảo có nhiều người làm việc trong một dự án và những người đa dạng đang thử nghiệm và xem xét nó. Những người khác đã kêu gọi các bên thứ ba theo quy định giám sát và kiểm tra các thuật toán , xây dựng các hệ thống thay thế có thể phát hiện thành kiếnđánh giá đạo đức như một phần của kế hoạch dự án khoa học dữ liệu.Nâng cao nhận thức về thành kiến, lưu tâm đến thành kiến vô thức của ta và cấu trúc công bằng trong các dự án máy học và đường ống của ta có thể hoạt động để chống lại thành kiến trong lĩnh vực này.

Học máy DigitalOcean

Kết luận

Hướng dẫn này đã xem xét một số trường hợp sử dụng của học máy, các phương pháp phổ biến và cách tiếp cận phổ biến được sử dụng trong lĩnh vực này, các ngôn ngữ lập trình học máy phù hợp và cũng đề cập đến một số điều cần lưu ý về các thành kiến vô thức được nhân rộng trong các thuật toán.

Vì học máy là một lĩnh vực liên tục được đổi mới nên điều quan trọng cần lưu ý là các thuật toán, phương pháp và cách tiếp cận sẽ tiếp tục thay đổi.

Ngoài việc đọc các hướng dẫn của ta về “ Cách xây dựng bộ phân loại học máy bằng Python với scikit-learning ” hoặc “ Cách thực hiện chuyển kiểu thần kinh với Python 3 và PyTorch ”, bạn có thể tìm hiểu thêm về cách làm việc với dữ liệu trong ngành công nghệ bằng cách đọc hướng dẫn Phân tích dữ liệu của ta .


Tags:

Các tin liên quan