Mạng nơ-ron và học sâu: tương lai gần. Học sâu để xử lý văn bản tự động

Từ bài viết này, bạn sẽ biết được học sâu là gì. Ngoài ra, bài báo có chứa nhiều tài nguyên mà bạn có thể sử dụng để làm chủ lĩnh vực này.

Trong thế giới hiện đại, từ chăm sóc sức khỏe đến sản xuất, học sâu là phổ biến. Các công ty đang chuyển sang sử dụng công nghệ này để giải quyết các vấn đề phức tạp như nhận dạng giọng nói và đối tượng, dịch máy, v.v.

Một trong những thành tích ấn tượng nhất năm nay là việc AlphaGo đánh bại kỳ thủ cờ vây xuất sắc nhất thế giới. Ngoài cờ vây, máy móc đã vượt trội hơn con người trong các trò chơi khác: cờ caro, cờ vua, đảo ngược và nguy hiểm.

Có vẻ như chiến thắng trong một trò chơi trên bàn cờ dường như không thể giải quyết được các vấn đề thực tế, nhưng điều này hoàn toàn không phải vậy. Cờ vây được thiết kế để có thể bất bại bởi trí tuệ nhân tạo. Để làm được điều này, anh ta cần phải học một điều quan trọng đối với trò chơi này - trực giác của con người. Giờ đây, với sự trợ giúp của sự phát triển này, có thể giải quyết nhiều vấn đề mà trước đây máy tính không thể truy cập được.

Rõ ràng, học sâu vẫn chưa hoàn hảo, nhưng nó đã gần trở nên hữu ích về mặt thương mại. Ví dụ, những chiếc xe tự lái này. Các công ty nổi tiếng như Google, Tesla và Uber đang cố gắng đưa ô tô tự lái đến các đường phố của thành phố.

Ford dự đoán thị phần xe không người lái sẽ tăng đáng kể vào năm 2021. Chính phủ Hoa Kỳ cũng quản lý để phát triển một bộ quy tắc an toàn cho họ.

Học sâu là gì?

Để trả lời câu hỏi này, bạn cần hiểu cách nó tương tác với học máy, mạng nơ-ron và trí tuệ nhân tạo. Để làm điều này, chúng tôi sử dụng phương pháp trực quan hóa bằng cách sử dụng các vòng tròn đồng tâm:

Vòng ngoài là trí tuệ nhân tạo nói chung (ví dụ, máy tính). Xa hơn một chút - học máy và khá ở trung tâm - học sâu và mạng nơ-ron nhân tạo.

Nói một cách đại khái, học sâu chỉ là một cái tên thuận tiện hơn cho mạng nơ-ron nhân tạo. "Sâu" trong cụm từ này đề cập đến mức độ phức tạp (độ sâu) của mạng nơ-ron, thường có thể rất hời hợt.

Những người tạo ra mạng lưới thần kinh đầu tiên được truyền cảm hứng từ cấu trúc của vỏ não. Lớp cơ sở của mạng, tế bào cảm thụ, về cơ bản là đối chiếu toán học của tế bào thần kinh sinh học. Và, cũng như trong não, các perceptron giao với nhau có thể xuất hiện trong mạng nơ-ron.

Lớp đầu tiên của mạng nơ-ron được gọi là lớp đầu vào. Mỗi nút của lớp này nhận một số thông tin làm đầu vào và truyền nó đến các nút tiếp theo trong các lớp khác. Thông thường, không có kết nối nào giữa các nút của một lớp và nút cuối cùng của chuỗi hiển thị kết quả của mạng nơ-ron.

Các nút ở giữa được gọi là ẩn vì chúng không có kết nối với thế giới bên ngoài như các nút đầu ra và đầu vào. Chúng chỉ được gọi nếu các lớp trước đó được kích hoạt.

Học sâu về bản chất là một kỹ thuật đào tạo mạng nơ-ron sử dụng nhiều lớp để giải quyết các vấn đề phức tạp (chẳng hạn như nhận dạng giọng nói) bằng cách sử dụng các mẫu. Trong những năm 1980, hầu hết các mạng nơ-ron đều là một lớp do chi phí cao và khả năng dữ liệu hạn chế.

Nếu chúng ta coi học máy là một nhánh hoặc một biến thể của công việc của trí tuệ nhân tạo, thì học sâu là một loại hình chuyên biệt của một nhánh như vậy.

Máy học sử dụng trí thông minh máy tính không cung cấp câu trả lời ngay lập tức. Thay vào đó, mã sẽ chạy trên dữ liệu thử nghiệm và dựa trên tính đúng đắn của kết quả, điều chỉnh hướng đi của nó. Để thành công của quá trình này, các kỹ thuật khác nhau, phần mềm đặc biệt và khoa học máy tính, mô tả các phương pháp tĩnh và đại số tuyến tính, thường được sử dụng.

Phương pháp học sâu

Phương pháp học sâu chia thành hai loại chính:

  • Học với giáo viên
  • Học mà không có giáo viên

Phương pháp đầu tiên sử dụng dữ liệu được lựa chọn đặc biệt để đạt được kết quả mong muốn. Nó đòi hỏi sự can thiệp của con người khá nhiều, vì dữ liệu phải được chọn thủ công. Tuy nhiên, nó thuận tiện cho việc phân loại và hồi quy.

Hãy tưởng tượng rằng bạn là chủ sở hữu của một công ty và muốn xác định ảnh hưởng của tiền thưởng đến thời hạn hợp đồng với cấp dưới của bạn. Với sự hiện diện của các dữ liệu được thu thập trước, phương pháp học có giám sát sẽ là không thể thiếu và rất hiệu quả.

Phương pháp thứ hai không bao hàm các câu trả lời và thuật toán công việc được chuẩn bị trước. Nó nhằm mục đích tiết lộ các mẫu ẩn trong dữ liệu. Nó thường được sử dụng cho các nhiệm vụ phân cụm và liên kết, chẳng hạn như nhóm các khách hàng theo hành vi. “Họ cũng chọn điều này” trên Amazon là một biến thể của nhiệm vụ liên kết.

Mặc dù phương pháp được giám sát thường khá thuận tiện, nhưng phiên bản phức tạp hơn của nó vẫn tốt hơn. Học sâu đã tự thiết lập như một mạng lưới thần kinh không cần sự giám sát của con người.

Tầm quan trọng của việc học sâu

Máy tính từ lâu đã sử dụng công nghệ để nhận dạng các tính năng nhất định trong hình ảnh. Tuy nhiên, kết quả còn lâu mới thành công. Thị giác máy tính đã có tác động đáng kinh ngạc đến học sâu. Đó là hai kỹ thuật hiện giải quyết tất cả các nhiệm vụ nhận dạng.

Đặc biệt, Facebook đã thành công trong việc nhận dạng khuôn mặt trong các bức ảnh bằng cách sử dụng học sâu. Đây không phải là một cải tiến đơn giản trong công nghệ, mà là một bước ngoặt thay đổi tất cả những ý tưởng trước đó: “Một người có thể xác định với xác suất 97,53% liệu cùng một người có được thể hiện trong hai bức ảnh khác nhau hay không. Chương trình do nhóm Facebook phát triển có thể thực hiện điều này với xác suất 97,25% bất kể ánh sáng hay người dùng đang nhìn thẳng vào máy ảnh hay quay sang một bên.

Nhận dạng giọng nói cũng đã có những thay đổi đáng kể. Nhóm Baidu, một trong những công cụ tìm kiếm hàng đầu của Trung Quốc, đã phát triển một hệ thống nhận dạng giọng nói đã vượt xa con người về tốc độ và độ chính xác khi viết văn bản trên thiết bị di động. Bằng tiếng Anh và tiếng Quan Thoại.

Điều đặc biệt thú vị là việc viết một mạng nơ-ron chung cho hai ngôn ngữ hoàn toàn khác nhau không đòi hỏi nhiều công sức: “Trong lịch sử, mọi người coi tiếng Trung và tiếng Anh là hai ngôn ngữ hoàn toàn khác nhau, vì vậy cần phải có một cách tiếp cận khác. mỗi người trong số họ, ”người đứng đầu Trung tâm nghiên cứu Baidu, Andrew Ng. “Các thuật toán học tập hiện đã được tổng quát hóa đến mức bạn có thể đơn giản học."

Google sử dụng học sâu để quản lý năng lượng trong các trung tâm dữ liệu của công ty. Họ đã có thể giảm 40% chi phí tài nguyên làm mát. Đó là khoảng cải thiện 15% về hiệu quả năng lượng và tiết kiệm hàng triệu đô la.

Dịch vụ học sâu

Dưới đây là tổng quan ngắn gọn về các dịch vụ liên quan đến học sâu.

Tagger minh họa. Được bổ sung bởi Illustration2Vec, dịch vụ này cho phép bạn đánh dấu hình ảnh là "được bảo vệ", "có vấn đề", "nguy hiểm", "bản quyền" hoặc "chung chung" để hiểu trước nội dung của hình ảnh.

  • Tiện ích bổ sung cho Theano của Google
  • Đã chỉnh sửa bằng Python và Numpy
  • Thường được sử dụng để giải quyết một loạt các vấn đề cụ thể
  • Không phải mục đích chung. Tập trung chính vào thị giác máy
  • Đã chỉnh sửa bằng C ++
  • Có giao diện Python

Các khóa học trực tuyến về học sâu

Google và Udacity đã hợp tác để tạo ra một khóa học sâu miễn phí, một phần của khóa học Máy học Udacity. Chương trình này được dẫn dắt bởi các nhà phát triển có kinh nghiệm, những người muốn phát triển lĩnh vực học máy và đặc biệt là học sâu.

Một lựa chọn phổ biến khác là khóa học máy học của Andrew Ng, được hỗ trợ bởi Coursera và Stanford.

  1. Học máy - Stanford của Andrew Ng trên Coursera (2010-2014)
  2. Học máy - Caltech của Yaser Abu-Mostafa (2012-2014)
  3. Học máy - Carnegie Mellon của Tom Mitchell (Mùa xuân 2011)
  4. Mạng thần kinh cho học máy - Geoffrey Hinton trên Coursera (2012)
  5. Lớp mạng nơron- Hugo Larochelle từ Đại học Sherbrooke (2013

Sách học sâu

Trong khi các nguồn tài liệu trong phần trước dựa trên nền tảng kiến ​​thức khá sâu rộng thì ngược lại, Grokking Deep Learning lại hướng đến những người mới bắt đầu. Như các tác giả nói: “Nếu bạn đã hoàn thành 11 lớp học và gần như hiểu được cách viết bằng Python, chúng tôi sẽ dạy bạn học sâu”.

Một thay thế phổ biến cho cuốn sách này là Sách Học sâu có tiêu đề phù hợp. Nó đặc biệt tốt vì nó mô tả tất cả các phép toán mà bạn sẽ cần phải đi sâu vào lĩnh vực này.

  1. Học sâu của Yoshua Bengio, Ian Goodfellow và Aaron Courville (2015)
  2. "Neural Networks and Deep Learning" của Michael Nielsen (2014)
  3. "Học sâu" của Microsoft Research (2013)
  4. "Hướng dẫn học sâu" của Phòng thí nghiệm LISA, Đại học Montreal (2015)
  5. "neuraltalk" của Andrej Karpathy
  6. "Giới thiệu về các thuật toán di truyền"
  7. "Cách tiếp cận hiện đại đối với trí tuệ nhân tạo"
  8. "Tổng quan về Học sâu và Mạng thần kinh"

Video và bài giảng

Deep Learning Simplified là một kênh YouTube tuyệt vời. Đây là video đầu tiên của họ:

(Manning Publications).

Bài viết dành cho những người đã có nhiều kinh nghiệm về học sâu (ví dụ: những người đã đọc chương 1-8 của cuốn sách này). Nó giả định rất nhiều kiến ​​thức.

Học sâu: Chế độ xem hình học

Điều tuyệt vời nhất về học sâu là nó đơn giản như thế nào. Mười năm trước, không ai có thể tưởng tượng chúng ta sẽ đạt được những kết quả đáng kinh ngạc nào trong các bài toán nhận thức máy bằng cách sử dụng các mô hình tham số đơn giản được đào tạo với gradient descent. Bây giờ nó chỉ ra rằng tất cả những gì bạn cần là đủ lớn các mô hình tham số được đào tạo về đủ lớn số lượng mẫu. Như Feynman đã từng nói về vũ trụ: Nó không phức tạp, nó chỉ là rất nhiều».

Trong học tập sâu, mọi thứ đều là một vectơ, tức là dấu chấm Trong không gian hình học. Dữ liệu đầu vào của mô hình (đây có thể là văn bản, hình ảnh, v.v.) và các mục tiêu của nó trước tiên được "vectơ hóa", nghĩa là, được dịch sang một số không gian vectơ ban đầu làm đầu vào và không gian vectơ mục tiêu làm đầu ra. Mỗi lớp trong mô hình học sâu thực hiện một phép biến đổi hình học đơn giản trên dữ liệu đi qua nó. Cùng với nhau, chuỗi các lớp mô hình tạo ra một phép biến đổi hình học rất phức tạp, được chia nhỏ thành một số lớp đơn giản. Phép biến đổi phức tạp này cố gắng chuyển đổi không gian dữ liệu đầu vào thành không gian đích, cho mỗi điểm. Các tham số biến đổi được xác định bởi trọng số của lớp, được cập nhật liên tục dựa trên mức độ hoạt động của mô hình hiện tại. Đặc điểm chính của một phép biến đổi hình học là nó phải có thể phân biệt, nghĩa là, chúng ta có thể tìm ra các thông số của nó thông qua độ dốc gradient. Về mặt trực quan, điều này có nghĩa là biến đổi hình học phải trơn tru và liên tục - một hạn chế quan trọng.

Toàn bộ quá trình áp dụng phép biến đổi hình học phức tạp này trên dữ liệu đầu vào có thể được trực quan hóa dưới dạng 3D bằng cách mô tả một người đang cố gắng mở quả bóng giấy: quả bóng giấy nhàu nát là một loạt dữ liệu đầu vào mà mô hình bắt đầu hoạt động. Mỗi chuyển động của một người với quả bóng giấy giống như một phép biến đổi hình học đơn giản được thực hiện bởi một lớp. Chuỗi đầy đủ của các cử chỉ mở ra là một sự biến đổi phức tạp của toàn bộ mô hình. Mô hình học sâu là những cỗ máy toán học để mở ra một mảng dữ liệu chiều cao phức tạp.

Đó là điều kỳ diệu của học sâu: biến giá trị thành vectơ, thành không gian hình học, và sau đó dần dần học các phép biến đổi hình học phức tạp biến không gian này thành không gian khác. Tất cả những gì cần thiết là không gian có kích thước đủ lớn để truyền tải đầy đủ các mối quan hệ được tìm thấy trong dữ liệu gốc.

Hạn chế của học sâu

Tập hợp các vấn đề có thể được giải quyết với chiến lược đơn giản này là gần như vô tận. Tuy nhiên, nhiều người trong số họ vẫn nằm ngoài tầm với của các kỹ thuật học sâu hiện tại — ngay cả với lượng lớn dữ liệu được chú thích bằng tay. Ví dụ: giả sử bạn có thể thu thập tập dữ liệu gồm hàng trăm nghìn - thậm chí hàng triệu - mô tả bằng tiếng Anh về các tính năng phần mềm do người quản lý sản phẩm viết, cũng như năm cơ sở tương ứng do các nhóm kỹ sư phát triển để đáp ứng các yêu cầu đó. Ngay cả với dữ liệu này, bạn không thể đào tạo mô hình học sâu chỉ bằng cách đọc mô tả sản phẩm và tạo cơ sở mã phù hợp. Đây chỉ là một trong nhiều ví dụ. Nói chung, bất cứ điều gì đòi hỏi phải tranh luận, lập luận - như lập trình hoặc áp dụng phương pháp khoa học, lập kế hoạch dài hạn, thao tác dữ liệu kiểu thuật toán - đều nằm ngoài khả năng của các mô hình học sâu, cho dù bạn có ném bao nhiêu dữ liệu vào chúng. Ngay cả việc đào tạo một mạng nơ-ron cho một thuật toán sắp xếp cũng là một nhiệm vụ cực kỳ khó khăn.

Lý do là mô hình học sâu là "duy nhất" một chuỗi các phép biến đổi hình học liên tục, đơn giản, biến một không gian vectơ này thành một không gian vectơ khác. Tất cả những gì nó có thể làm là biến đổi một tập dữ liệu X thành một tập dữ liệu Y khác, miễn là có thể có một phép chuyển đổi liên tục từ X sang Y có thể học được và tính khả dụng bộ mẫu dày đặc Các phép biến đổi X: Y làm dữ liệu huấn luyện. Vì vậy, mặc dù mô hình học sâu có thể được coi là một loại chương trình, nhưng hầu hết các chương trình không thể được thể hiện dưới dạng mô hình học sâu- đối với hầu hết các vấn đề, hoặc không có mạng nơron sâu có kích thước phù hợp thực tế để giải quyết vấn đề hoặc nếu nó tồn tại, nó có thể không thể hiểu được nghĩa là, phép biến đổi hình học tương ứng có thể quá phức tạp, hoặc không có dữ liệu thích hợp để huấn luyện nó.

Mở rộng quy mô các kỹ thuật học sâu hiện có — thêm nhiều lớp hơn và sử dụng nhiều dữ liệu đào tạo hơn — chỉ có thể giảm thiểu một số vấn đề này một cách hời hợt. Nó sẽ không giải quyết được vấn đề cơ bản hơn là các mô hình học sâu rất hạn chế về những gì chúng có thể đại diện và hầu hết các chương trình không thể được thể hiện dưới dạng biến đổi hình học liên tục của nhiều loại dữ liệu.

Rủi ro của việc nhân cách hóa các mô hình học máy

Một trong những rủi ro rất thực tế của AI hiện đại là hiểu sai cách hoạt động của các mô hình học sâu và phóng đại khả năng của chúng. Một đặc điểm cơ bản của tâm trí con người là "mô hình tâm lý con người", xu hướng của chúng ta là phóng chiếu các mục tiêu, niềm tin và kiến ​​thức lên những thứ xung quanh chúng ta. Vẽ một khuôn mặt tươi cười trên đá đột nhiên làm cho chúng ta "hạnh phúc" - về mặt tinh thần. Trong một ứng dụng học sâu, điều này có nghĩa là, chẳng hạn, nếu chúng ta ít nhiều có thể đào tạo thành công một mô hình để tạo mô tả bằng văn bản về hình ảnh, thì chúng tôi có xu hướng nghĩ rằng mô hình "hiểu" nội dung của hình ảnh, cũng như các mô tả đã tạo. Sau đó, chúng tôi rất ngạc nhiên khi, do một sai lệch nhỏ so với tập hợp các hình ảnh được trình bày trong dữ liệu huấn luyện, mô hình bắt đầu tạo ra các mô tả hoàn toàn vô lý.

Đặc biệt, điều này thể hiện rõ ràng nhất trong “các ví dụ đối nghịch”, tức là các mẫu đầu vào của mạng học sâu được chọn đặc biệt để bị phân loại sai. Bạn đã biết rằng bạn có thể làm tăng độ dốc trong không gian dữ liệu đầu vào để tạo ra các mẫu tối đa hóa việc kích hoạt, ví dụ, một bộ lọc mạng nơron tích chập nhất định - đây là cơ sở của kỹ thuật trực quan hóa mà chúng ta đã đề cập trong chương 5 (lưu ý: Deep Learning với sách Python), giống như thuật toán Deep Dream từ Chương 8. Theo cách tương tự, thông qua quá trình đi lên của gradient, người ta có thể sửa đổi hình ảnh một chút để tối đa hóa dự đoán lớp cho một lớp nhất định. Nếu chúng ta chụp ảnh gấu trúc và thêm gradient "vượn", chúng ta có thể nhận được mạng lưới thần kinh phân loại gấu trúc này là vượn. Điều này minh chứng cho cả sự mong manh của các mô hình này và sự khác biệt sâu sắc giữa chuyển đổi đầu vào thành đầu ra mà nó hướng dẫn và nhận thức của chính con người chúng ta.

Nói chung, các mô hình học sâu không có hiểu biết về đầu vào, ít nhất là không theo nghĩa của con người. Sự hiểu biết của chúng ta về hình ảnh, âm thanh, ngôn ngữ, dựa trên trải nghiệm cảm giác của chúng ta với tư cách là con người - với tư cách là những sinh vật trần thế. Các mô hình học máy không có quyền truy cập vào những trải nghiệm như vậy và do đó không thể “hiểu” đầu vào của chúng ta theo bất kỳ cách nào giống như con người. Bằng cách chú thích một số lượng lớn các ví dụ đào tạo cho các mô hình của chúng tôi, chúng tôi làm cho chúng học một phép biến đổi hình học mang dữ liệu đến các khái niệm của con người cho bộ ví dụ cụ thể đó, nhưng phép biến đổi này chỉ là một bản phác thảo đơn giản của mô hình ban đầu của tâm trí chúng ta, như được phát triển từ kinh nghiệm của chúng tôi với tư cách là các tác nhân cơ thể - nó giống như một hình ảnh phản chiếu mờ nhạt trong gương.

Là một người thực hành máy học, hãy luôn ghi nhớ điều này và đừng bao giờ rơi vào bẫy tin rằng mạng nơ-ron hiểu nhiệm vụ mà chúng đang thực hiện - chúng không, ít nhất là không theo cách có ý nghĩa đối với chúng ta. Họ đã được đào tạo về một nhiệm vụ khác, hẹp hơn nhiều so với nhiệm vụ mà chúng tôi muốn dạy cho họ: chỉ cần chuyển đổi các mẫu đào tạo đầu vào thành các mẫu đào tạo mục tiêu, điểm này đến điểm khác. Cho họ thấy bất cứ thứ gì khác với dữ liệu đào tạo và họ sẽ phá vỡ theo cách vô lý nhất.

Tổng quát cục bộ so với Tổng quát hóa giới hạn

Dường như có sự khác biệt cơ bản giữa biến đổi hình học trực tiếp từ đầu vào đến đầu ra mà các mô hình học sâu thực hiện và cách mọi người suy nghĩ và học tập. Nó không chỉ là mọi người tự học hỏi từ kinh nghiệm cơ thể của họ, và không thông qua việc xử lý một tập hợp các mẫu đào tạo. Ngoài sự khác biệt về quy trình học tập, có những khác biệt cơ bản về bản chất của các biểu diễn cơ bản.

Con người có nhiều khả năng hơn là chuyển đổi một kích thích tức thời thành một phản ứng tức thì, chẳng hạn như mạng lưới thần kinh hoặc có thể là côn trùng. Mọi người giữ trong tâm trí của họ những mô hình phức tạp, trừu tượng về tình hình hiện tại, về bản thân họ, về người khác, và có thể sử dụng những mô hình này để dự đoán những tương lai có thể xảy ra khác nhau và thực hiện kế hoạch dài hạn. Họ có khả năng tập hợp các khái niệm nổi tiếng để đại diện cho điều gì đó mà họ chưa từng biết trước đây - chẳng hạn như vẽ một con ngựa trong quần jean, hoặc một bức tranh về những gì họ sẽ làm nếu trúng số. Khả năng suy nghĩ theo giả thuyết, để mở rộng mô hình không gian tinh thần của chúng ta vượt xa những gì chúng ta đã trực tiếp trải nghiệm, tức là khả năng làm trừu tượnglý luận có lẽ là đặc điểm xác định nhận thức của con người. Tôi gọi đây là "tổng quát hóa cực độ": khả năng thích ứng với những tình huống mới, chưa từng có trước đây với rất ít hoặc không có dữ liệu nào cả.

Điều này hoàn toàn trái ngược với những gì mạng học sâu làm, cái mà tôi gọi là "tổng quát hóa cục bộ": chuyển đổi đầu vào thành đầu ra nhanh chóng không còn ý nghĩa nếu các đầu vào mới thậm chí hơi khác so với những gì họ gặp phải trong quá trình đào tạo. Ví dụ, hãy xem xét vấn đề tìm hiểu các thông số phóng thích hợp cho một tên lửa hạ cánh trên Mặt trăng. Nếu bạn sử dụng mạng nơ-ron cho nhiệm vụ này, đào tạo nó với giáo viên hoặc với sự củng cố, bạn sẽ cần cung cấp cho nó hàng nghìn hoặc hàng triệu đường bay, tức là bạn cần phải phát hành tập hợp dày đặc các ví dụ trong không gian của giá trị đến để tìm hiểu cách chuyển đổi một cách đáng tin cậy từ không gian của giá trị đến sang không gian của giá trị đi. Ngược lại, con người có thể sử dụng sức mạnh của sự trừu tượng để tạo ra các mô hình vật lý - khoa học tên lửa - và đưa ra giải pháp chính xác giúp đưa tên lửa lên mặt trăng chỉ trong vài lần thử. Tương tự như vậy, nếu bạn thiết kế một mạng thần kinh để điều khiển cơ thể con người và bạn muốn nó học cách đi qua thành phố một cách an toàn mà không bị ô tô đâm, thì mạng đó phải chết hàng nghìn lần trong nhiều tình huống khác nhau trước khi kết thúc. rằng ô tô nguy hiểm và không thành công. Hành vi thích hợp để tránh chúng. Nếu nó được chuyển đến một thành phố mới, mạng sẽ phải học lại nhiều thứ mà nó đã biết. Mặt khác, con người có thể học cách cư xử an toàn mà không bị chết lần nữa, nhờ vào khả năng mô hình hóa trừu tượng các tình huống giả định.

Vì vậy, bất chấp sự tiến bộ của chúng tôi trong nhận thức máy móc, chúng tôi vẫn còn rất xa so với AI ở cấp độ con người: các mô hình của chúng tôi chỉ có thể làm tổng quát địa phương, thích ứng với các tình huống mới phải rất gần với dữ liệu trong quá khứ, trong khi tâm trí con người có khả năng tổng quát hóa cuối cùng thích ứng nhanh chóng với các tình huống hoàn toàn mới hoặc lập kế hoạch xa trong tương lai.

kết luận

Đây là những gì bạn cần nhớ: thành công thực sự duy nhất của học sâu cho đến nay là khả năng dịch không gian X sang không gian Y bằng cách sử dụng phép biến đổi hình học liên tục khi có nhiều dữ liệu được chú thích của con người. Làm tốt điều này là một yếu tố thay đổi cuộc chơi cho toàn ngành, nhưng AI ở cấp độ con người vẫn còn một chặng đường dài.

Để loại bỏ một số hạn chế này và cạnh tranh với bộ não con người, chúng ta cần chuyển từ chuyển đổi đầu vào-đầu ra trực tiếp và chuyển sang lý luậntrừu tượng. Có lẽ một cơ sở thích hợp để mô hình hóa trừu tượng các tình huống và khái niệm khác nhau có thể là các chương trình máy tính. Chúng tôi đã nói trước đây (lưu ý: trong Học sâu với Python) rằng các mô hình học máy có thể được định nghĩa là "chương trình có thể đào tạo"; hiện tại, chúng tôi chỉ có thể đào tạo một tập hợp con hẹp và cụ thể của tất cả các chương trình có thể. Nhưng điều gì sẽ xảy ra nếu chúng ta có thể đào tạo mọi chương trình, theo mô-đun và lặp đi lặp lại? Hãy xem làm thế nào chúng ta có thể đạt được điều đó.

Tương lai của học sâu

Với những gì chúng ta biết về cách mạng lưới học tập sâu hoạt động, những hạn chế của chúng và tình trạng nghiên cứu khoa học hiện tại, chúng ta có thể dự đoán điều gì sẽ xảy ra trong trung hạn không? Đây là một số suy nghĩ cá nhân của tôi về vấn đề này. Hãy nhớ rằng tôi không có quả cầu pha lê để dự đoán, rất nhiều điều tôi mong đợi có thể không thành hiện thực. Đây là suy đoán tuyệt đối. Tôi chia sẻ những dự đoán này không phải vì tôi mong đợi chúng sẽ được hiện thực hóa hoàn toàn trong tương lai, mà vì chúng rất thú vị và có thể áp dụng được trong hiện tại.

Ở cấp độ cao, đây là những lĩnh vực chính mà tôi thấy là đầy hứa hẹn:

  • Các mô hình sẽ tiếp cận các chương trình máy tính có mục đích chung được xây dựng dựa trên các lớp nguyên thủy phong phú hơn nhiều so với các lớp có thể phân biệt hiện tại của chúng tôi - vì vậy chúng tôi nhận được lý luậntrừu tượng, sự thiếu vắng đó là một điểm yếu cơ bản của các dòng máy hiện nay.
  • Các hình thức học tập mới sẽ xuất hiện để làm cho điều này trở nên khả thi - và cho phép các mô hình rời xa các phép biến đổi đơn giản có thể phân biệt được.
  • Mô hình sẽ yêu cầu ít đầu vào của nhà phát triển hơn - bạn không phải liên tục chỉnh sửa các nút.
  • Sẽ có nhiều hơn, tái sử dụng có hệ thống các tính năng và kiến ​​trúc đã học; hệ thống siêu học tập dựa trên các quy trình mô-đun và có thể tái sử dụng.
Ngoài ra, xin lưu ý rằng những cân nhắc này không áp dụng cụ thể cho học có giám sát, vốn vẫn là cơ sở của học máy - nó cũng áp dụng cho mọi hình thức học máy, bao gồm học không giám sát, học tự giám sát và học tăng cường. Về cơ bản, không quan trọng nhãn của bạn đến từ đâu hoặc chu kỳ học tập của bạn trông như thế nào; các nhánh khác nhau của máy học này chỉ là các khía cạnh khác nhau của cùng một cấu trúc.

Vậy thì cứ đi.

Mô hình dưới dạng chương trình

Như chúng tôi đã lưu ý trước đó, một sự phát triển chuyển đổi cần thiết có thể được mong đợi trong lĩnh vực máy học đang chuyển dần khỏi các mô hình hoạt động thuần túy nhận dạng mẫu và chỉ có khả năng tổng quát địa phương, cho các mô hình có khả năng trừu tượnglý luậnđiều đó có thể đạt được tổng quát hóa cuối cùng. Tất cả các chương trình AI hiện tại với cấp độ lý luận cơ bản đều được lập trình viên con người mã hóa cứng: ví dụ, các chương trình dựa vào thuật toán tìm kiếm, thao tác đồ thị, logic hình thức. Ví dụ, trong chương trình DeepMind AlphaGo, hầu hết "trí thông minh" trên màn hình được thiết kế và mã hóa cứng bởi các lập trình viên chuyên nghiệp (ví dụ, tìm kiếm trên cây bằng phương pháp Monte Carlo); việc học trên dữ liệu mới chỉ xảy ra trong các mô-đun con chuyên biệt - mạng giá trị và mạng chính sách. Nhưng trong tương lai, các hệ thống AI như vậy hoàn toàn có thể được đào tạo mà không cần sự can thiệp của con người.

Làm thế nào để đạt được điều này? Hãy xem một loại mạng nổi tiếng: RNN. Quan trọng là, RNN có ít hạn chế hơn một chút so với mạng nơ-ron truyền thẳng. Điều này là do các RNN không đơn giản chỉ là các phép biến đổi hình học: chúng là các phép biến đổi hình học được thực hiện liên tục trong một vòng lặp for. Thời gian cho vòng lặp được thiết lập bởi nhà phát triển: đó là một giả định mạng tích hợp sẵn. Đương nhiên, các RNN vẫn bị hạn chế về những gì chúng có thể biểu diễn, chủ yếu là do mỗi bước của chúng vẫn là một phép biến đổi hình học có thể phân biệt được và do cách chúng truyền thông tin từng bước qua các điểm trong không gian hình học liên tục (vectơ trạng thái). Bây giờ, hãy tưởng tượng các mạng nơ-ron sẽ “phát triển” với các nguyên thủy lập trình theo cách tương tự như đối với các vòng lặp - không chỉ là một vòng lặp for được mã hóa cứng với bộ nhớ hình học, mà là một tập hợp lớn các nguyên thủy lập trình mà mô hình có thể tự do truy cập để mở rộng các khả năng xử lý như nhánh if, câu lệnh while, tạo biến, lưu trữ đĩa cho bộ nhớ dài hạn, toán tử sắp xếp, cấu trúc dữ liệu nâng cao như danh sách, đồ thị, bảng băm, v.v. Không gian của các chương trình mà một mạng như vậy có thể biểu diễn sẽ rộng hơn nhiều so với các mạng học sâu hiện có có thể thể hiện và một số chương trình này có thể đạt được sức mạnh tổng quát hóa tuyệt vời.

Nói một cách dễ hiểu, chúng ta sẽ tránh xa thực tế rằng một mặt chúng ta có “trí thông minh thuật toán được mã hóa cứng” (phần mềm viết tay) và mặt khác là “trí thông minh hình học được đào tạo” (học sâu). Thay vào đó, chúng tôi nhận được một hỗn hợp các mô-đun thuật toán chính thức cung cấp khả năng lý luậntrừu tượng và các mô-đun hình học cung cấp cơ hội trực giác không chính thức và nhận dạng mẫu. Toàn bộ hệ thống sẽ được đào tạo với rất ít hoặc không có sự tham gia của con người.

Một lĩnh vực liên quan của AI mà tôi nghĩ có thể tạo ra sự khác biệt lớn trong tương lai gần là tổng hợp phần mềm nói riêng là tổng hợp phần mềm thần kinh. Tổng hợp chương trình bao gồm tự động tạo ra các chương trình đơn giản bằng cách sử dụng một thuật toán tìm kiếm (có thể là tìm kiếm di truyền, như trong lập trình di truyền) để khám phá một không gian rộng lớn của các chương trình khả thi. Việc tìm kiếm dừng lại khi tìm thấy một chương trình đáp ứng các thông số kỹ thuật được yêu cầu, thường được cung cấp dưới dạng một tập hợp các cặp đầu vào-đầu ra. Như bạn có thể thấy, điều này rất giống với học máy: "dữ liệu huấn luyện" được cung cấp dưới dạng các cặp đầu vào - đầu ra, chúng tôi tìm thấy một "chương trình" tương ứng với việc chuyển đổi đầu vào thành đầu ra và có khả năng tổng quát hóa thành đầu vào mới. Sự khác biệt là thay vì học các giá trị tham số trong một chương trình được mã hóa cứng (mạng thần kinh), chúng tôi tạo nguồn thông qua một quá trình tìm kiếm rời rạc.

Tôi chắc chắn kỳ vọng rằng sẽ có nhiều người quan tâm trở lại lĩnh vực này trong vài năm tới. Đặc biệt, tôi mong đợi sự thâm nhập lẫn nhau của các lĩnh vực liên quan của học sâu và tổng hợp chương trình, nơi chúng tôi sẽ không chỉ tạo ra các chương trình bằng các ngôn ngữ có mục đích chung, mà ở đó chúng tôi sẽ tạo ra các mạng nơ-ron (luồng xử lý dữ liệu hình học), gia tăng một tập hợp phong phú các nguyên thủy thuật toán như vòng lặp for - và nhiều thứ khác. Điều này sẽ thuận tiện và hữu ích hơn nhiều so với việc tạo mã nguồn trực tiếp và sẽ mở rộng đáng kể phạm vi các vấn đề có thể được giải quyết bằng cách sử dụng học máy - không gian của các chương trình mà chúng ta có thể tạo tự động, với dữ liệu đào tạo thích hợp. Một hỗn hợp của AI tượng trưng và AI hình học. RNN hiện đại có thể được coi là tổ tiên lịch sử của các mô hình hình học-thuật toán lai như vậy.


Hình ảnh: Một chương trình được đào tạo đồng thời dựa trên các nguyên thủy hình học (nhận dạng mẫu, trực giác) và nguyên thủy thuật toán (biện luận, tìm kiếm, bộ nhớ).

Vượt xa sự lan truyền ngược và các lớp có thể phân biệt

Nếu các mô hình học máy trở nên giống chương trình hơn, thì chúng sẽ khó có thể phân biệt được nữa - chắc chắn, các chương trình này sẽ vẫn sử dụng các lớp hình học liên tục làm chương trình con, sẽ vẫn có thể phân biệt được, nhưng toàn bộ mô hình sẽ không như vậy. Do đó, việc sử dụng cộng hưởng ngược để điều chỉnh các giá trị trọng lượng trong một mạng được mã hóa cứng cố định có thể không tiếp tục là phương pháp được ưa thích cho các mô hình đào tạo trong tương lai - ít nhất là không bị giới hạn ở riêng phương pháp này. Chúng ta cần tìm ra cách đào tạo hiệu quả nhất các hệ thống không khác biệt. Các phương pháp tiếp cận hiện tại bao gồm thuật toán di truyền, "chiến lược tiến hóa", phương pháp học tập củng cố nhất định, ADMM (phương pháp nhân Lagrange hướng biến đổi). Đương nhiên, gradient descent sẽ không còn đi đến đâu nữa - thông tin về gradient sẽ luôn hữu ích để tối ưu hóa các hàm tham số có thể phân biệt. Nhưng các mô hình của chúng tôi chắc chắn sẽ ngày càng trở nên tham vọng hơn là chỉ có các chức năng tham số có thể phân biệt được và do đó, sự phát triển tự động của chúng (“đào tạo” trong “học máy”) sẽ đòi hỏi nhiều hơn là nhân rộng.

Ngoài ra, backpropagation có một khuôn khổ end-to-end, thích hợp để học các phép biến đổi chuỗi tốt, nhưng khá kém hiệu quả về mặt tính toán vì nó không khai thác hết tính mô-đun của mạng sâu. Để tăng hiệu quả của bất cứ thứ gì, có một công thức chung: giới thiệu mô-đun và hệ thống phân cấp. Vì vậy, chúng tôi có thể làm cho bản thân quá trình lan truyền ngược trở nên hiệu quả hơn bằng cách giới thiệu các mô-đun học tập đã tách rời với một số loại cơ chế đồng bộ hóa giữa chúng, được tổ chức theo cách phân cấp. Chiến lược này được phản ánh một phần trong công trình gần đây của DeepMind về "gradient tổng hợp". Tôi mong đợi rất nhiều, nhiều công việc theo hướng này trong tương lai gần.

Người ta có thể tưởng tượng một tương lai nơi các mô hình không thể phân biệt trên toàn cầu (nhưng với các phần có thể phân biệt được) sẽ học hỏi - phát triển - sử dụng quy trình tìm kiếm hiệu quả không áp dụng gradient, trong khi các phần có thể phân biệt sẽ học nhanh hơn bằng cách sử dụng gradient bằng cách sử dụng một số phiên bản lan truyền ngược hiệu quả hơn

Học máy tự động

Trong tương lai của kiến ​​trúc, các mô hình sẽ được tạo ra bằng cách đào tạo hơn là được viết bằng tay bởi các kỹ sư. Các mô hình thu được bằng quá trình đào tạo tự động hoạt động cùng với một tập hợp phong phú hơn các mô hình máy học nguyên thủy và chương trình giống như chương trình.

Bây giờ, hầu hết thời gian, một nhà phát triển học sâu không ngừng sửa đổi dữ liệu bằng các tập lệnh Python, sau đó dành nhiều thời gian để điều chỉnh kiến ​​trúc và siêu tham số của mạng học sâu để có được một mô hình hoạt động - hoặc thậm chí để có được một mô hình nổi bật, nếu nhà phát triển có tham vọng đó. Không cần phải nói, đây không phải là trạng thái tốt nhất của sự việc. Nhưng AI cũng có thể giúp ở đây. Thật không may, phần chuẩn bị và xử lý dữ liệu rất khó tự động hóa, vì nó thường đòi hỏi kiến ​​thức về miền cũng như hiểu biết rõ ràng ở cấp cao về những gì nhà phát triển muốn đạt được. Tuy nhiên, điều chỉnh siêu tham số là một thủ tục tìm kiếm đơn giản và trong trường hợp này, chúng tôi đã biết nhà phát triển muốn đạt được điều gì: điều này được xác định bởi hàm mất mát của mạng nơ-ron cần được điều chỉnh. Giờ đây, việc cài đặt các hệ thống AutoML cơ bản đã trở thành thông lệ để đảm nhận hầu hết việc điều chỉnh cài đặt mô hình. Tôi đã tự mình cài đặt một cái để giành chiến thắng trong các cuộc thi Kaggle.

Ở cấp độ cơ bản nhất, một hệ thống như vậy sẽ chỉ cần điều chỉnh số lượng lớp trong ngăn xếp, thứ tự của chúng và số lượng phần tử hoặc bộ lọc trong mỗi lớp. Điều này thường được thực hiện bằng cách sử dụng các thư viện như Hyperopt, mà chúng ta đã thảo luận trong Chương 7 (lưu ý: Học sâu với sách Python). Nhưng bạn có thể tiến xa hơn nhiều và cố gắng tìm hiểu kiến ​​trúc phù hợp từ đầu, với một số hạn chế tối thiểu. Điều này có thể thực hiện được với việc học tăng cường, chẳng hạn, hoặc với sự trợ giúp của các thuật toán di truyền.

Một lĩnh vực phát triển quan trọng khác của AutoML là đào tạo kiến ​​trúc của mô hình cùng lúc với các trọng số của mô hình. Bằng cách đào tạo mô hình từ đầu mỗi khi chúng tôi thử các kiến ​​trúc hơi khác nhau, điều này cực kỳ kém hiệu quả, vì vậy một hệ thống AutoML thực sự mạnh mẽ sẽ thúc đẩy sự phát triển của các kiến ​​trúc trong khi các thuộc tính của mô hình được điều chỉnh thông qua việc nhân giống ngược trên dữ liệu đào tạo, do đó loại bỏ tất cả sự dư thừa của các phép tính. Khi tôi viết những dòng này, các phương pháp tương tự đã bắt đầu được áp dụng.

Khi tất cả những điều này bắt đầu xảy ra, các nhà phát triển học máy sẽ không bị bỏ rơi mà không có việc làm - họ sẽ chuyển sang cấp cao hơn trong chuỗi giá trị. Họ sẽ bắt đầu nỗ lực hơn nhiều trong việc tạo ra các hàm tổn thất phức tạp phản ánh thực sự các mục tiêu kinh doanh và sẽ hiểu sâu sắc về cách các mô hình của họ ảnh hưởng đến hệ sinh thái kỹ thuật số mà họ hoạt động (ví dụ: khách hàng sử dụng dự đoán mô hình và tạo dữ liệu cho đào tạo) là những vấn đề mà chỉ những công ty lớn nhất hiện nay mới có đủ khả năng để xem xét.

Học tập suốt đời và sử dụng lại các quy trình mô-đun

Nếu các mô hình trở nên phức tạp hơn và được xây dựng trên các nguyên thủy thuật toán phong phú hơn, thì độ phức tạp tăng lên này sẽ yêu cầu sử dụng lại nhiều hơn giữa các nhiệm vụ thay vì đào tạo mô hình từ đầu mỗi khi chúng ta có một nhiệm vụ mới hoặc tập dữ liệu mới. Cuối cùng, nhiều bộ dữ liệu không chứa đủ thông tin để phát triển một mô hình phức tạp mới từ đầu và sẽ đơn giản là cần sử dụng thông tin từ các bộ dữ liệu trước đó. Bạn không học tiếng Anh mỗi khi mở một cuốn sách mới - điều đó là không thể. Ngoài ra, các mô hình đào tạo từ đầu cho mỗi nhiệm vụ mới rất kém hiệu quả do có sự chồng chéo đáng kể giữa các nhiệm vụ hiện tại và những nhiệm vụ đã từng gặp phải trước đây.

Ngoài ra, trong những năm gần đây, nhận xét đáng chú ý đã nhiều lần được đưa ra rằng việc huấn luyện cùng một mô hình để thực hiện một số nhiệm vụ kết hợp lỏng lẻo sẽ cải thiện kết quả của nó. trong mỗi nhiệm vụ này. Ví dụ: đào tạo cùng một mạng nơ-ron để dịch từ tiếng Anh sang tiếng Đức và từ tiếng Pháp sang tiếng Ý sẽ dẫn đến một mô hình hoạt động tốt hơn trong mỗi cặp ngôn ngữ này. Đào tạo một mô hình phân loại ảnh cùng lúc với một mô hình phân đoạn ảnh, với một cơ sở tích chập duy nhất, sẽ dẫn đến một mô hình hoạt động tốt hơn trên cả hai nhiệm vụ. Và như thế. Điều này khá trực quan: luôn có một số thông tin chồng chéo giữa hai nhiệm vụ dường như khác nhau này và do đó, mô hình tổng thể có quyền truy cập vào nhiều thông tin hơn về từng nhiệm vụ riêng lẻ so với mô hình chỉ được đào tạo về nhiệm vụ cụ thể đó.

Những gì chúng tôi thực sự đang làm khi áp dụng lại một mô hình cho các nhiệm vụ khác nhau là sử dụng các trọng số đã được đào tạo trước cho các mô hình thực hiện các chức năng phổ biến như trích xuất đặc điểm trực quan. Bạn đã thấy điều này trong thực tế ở Chương 5. Tôi hy vọng rằng trong tương lai, một phiên bản tổng quát hơn của kỹ thuật này sẽ được sử dụng ở khắp mọi nơi: chúng tôi sẽ không chỉ sử dụng các tính năng đã học trước đó (trọng số mô hình con), mà còn cả các kiến ​​trúc mô hình và quy trình đào tạo. Khi các mô hình trở nên giống chương trình hơn, chúng tôi sẽ bắt đầu sử dụng lại thói quen, giống như các hàm và lớp trong các ngôn ngữ lập trình thông thường.

Hãy nghĩ về quy trình phát triển phần mềm ngày nay trông như thế nào: một khi một kỹ sư giải quyết một vấn đề nhất định (ví dụ: yêu cầu HTTP trong Python), họ đóng gói nó như một thư viện trừu tượng để sử dụng lại. Các kỹ sư sẽ gặp phải vấn đề tương tự trong tương lai chỉ cần tìm các thư viện hiện có, tải xuống và sử dụng chúng trong các dự án của riêng họ. Theo cách tương tự, trong tương lai, các hệ thống siêu học sẽ có thể tập hợp các chương trình mới bằng cách chọn lọc thông qua thư viện toàn cầu gồm các khối có thể tái sử dụng cấp cao. Nếu hệ thống bắt đầu phát triển các quy trình tương tự cho một số tác vụ khác nhau, nó sẽ phát hành một phiên bản có thể sử dụng lại "trừu tượng" của quy trình và lưu trữ nó trong thư viện toàn cầu. Quá trình này sẽ mở ra khả năng trừu tượng, một thành phần cần thiết để đạt được "tổng quát hóa cuối cùng": một chương trình con sẽ tỏ ra hữu ích cho nhiều nhiệm vụ và lĩnh vực có thể nói là "trừu tượng hóa" một số khía cạnh của việc ra quyết định. Định nghĩa "trừu tượng" này dường như không phải là khái niệm trừu tượng trong phát triển phần mềm. Các quy trình này có thể là hình học (mô-đun học sâu với các biểu diễn được đào tạo trước) hoặc thuật toán (gần với các thư viện mà các lập trình viên hiện đại làm việc với).

Hình ảnh: Một hệ thống siêu học có thể nhanh chóng phát triển các mô hình cụ thể cho nhiệm vụ bằng cách sử dụng các nguyên mẫu có thể tái sử dụng (thuật toán và hình học), do đó đạt được “tổng quát hóa cuối cùng”.

Điểm mấu chốt: tầm nhìn dài hạn

Tóm lại, đây là tầm nhìn dài hạn của tôi về học máy:
  • Các mô hình sẽ trở nên giống các chương trình hơn và sẽ có các khả năng vượt xa các phép biến đổi hình học liên tục của dữ liệu ban đầu mà chúng ta đang làm việc hiện nay. Có lẽ những chương trình này sẽ gần gũi hơn với các mô hình tinh thần trừu tượng mà mọi người duy trì về môi trường và về bản thân họ, và chúng sẽ có thể khái quát hóa mạnh mẽ hơn do bản chất thuật toán của chúng.
  • Đặc biệt, các mẫu sẽ pha trộn mô-đun thuật toán với lý luận chính thức, tìm kiếm, khả năng trừu tượng - và mô-đun hình học với trực giác không chính thức và nhận dạng mẫu. AlphaGo (một hệ thống yêu cầu lập trình và kiến ​​trúc thủ công chuyên sâu) là một ví dụ ban đầu về sự kết hợp giữa AI biểu tượng và hình học có thể trông như thế nào.
  • Họ sẽ được lớn lên tự động (và không được viết bằng tay bởi các lập trình viên của con người), sử dụng các phần mô-đun từ thư viện toàn cầu gồm các chương trình con có thể tái sử dụng - một thư viện đã phát triển bằng cách đồng hóa các mô hình hiệu suất cao từ hàng nghìn tác vụ và bộ dữ liệu trước đó. Một khi hệ thống luyện kim đã xác định các mẫu giải quyết vấn đề phổ biến, chúng sẽ được chuyển đổi thành các chương trình con có thể tái sử dụng - giống như các hàm và lớp trong lập trình hiện đại - và được thêm vào thư viện toàn cầu. Đây là cách khả năng trừu tượng.
  • Thư viện toàn cầu và hệ thống phát triển mô hình tương ứng sẽ có thể đạt được một số hình thức "tổng quát hóa cực độ" hình người: đối mặt với một nhiệm vụ mới, một tình huống mới, hệ thống sẽ có thể lắp ráp một mô hình làm việc mới cho nhiệm vụ này, sử dụng rất lượng dữ liệu nhỏ, nhờ: 1) những người ban đầu giống như chương trình phong phú, những người giỏi khái quát hóa và 2) nhiều kinh nghiệm trong việc giải quyết các vấn đề tương tự. Theo cách đó, mọi người có thể nhanh chóng tìm hiểu một trò chơi điện tử phức tạp mới vì họ đã có kinh nghiệm trước đó về nhiều trò chơi khác và bởi vì các mô hình dựa trên kinh nghiệm trước đó là trừu tượng và giống như chương trình, thay vì chỉ đơn giản là chuyển đổi kích thích thành hành động.
  • Về cơ bản, hệ thống phát triển mô hình học tập liên tục này có thể được hiểu là Trí tuệ nhân tạo mạnh mẽ. Nhưng đừng mong đợi một số ngày tận thế của rô-bốt kỳ lạ sẽ xảy ra: đó là tưởng tượng thuần túy được sinh ra từ một danh sách dài những hiểu lầm sâu sắc trong hiểu biết về trí thông minh và công nghệ. Tuy nhiên, lời chỉ trích này không thuộc về nơi đây.

Tìm hiểu về xu hướng kinh doanh tại một hội nghị quy mô lớn gần Kiev. Thứ Bảy đầy ắp những hiểu biết sâu sắc, khi họ lấy đi những kiến ​​thức và hiểu biết mới, lấy cảm hứng từ sự u sầu của việc dành một giờ. Tại hội nghị, có 4 luồng báo cáo bổ sung cho các nhà lãnh đạo doanh nghiệp, quản lý hàng đầu, nhà tiếp thị, bán hàng, học giả và các chuyên gia khác. Một trong những diễn giả là Bộ trưởng Bộ Cơ sở hạ tầng Volodymyr Omelyan, người đã nói về sự phát triển của phòng trưng bày, cải tạo đường xá và sân bay.

Chúc tất cả một ngày tốt lành, các đồng nghiệp iOS thân mến, chắc chắn rằng mỗi người trong số các bạn đã làm việc với mạng và dữ liệu được phân tích cú pháp từ JSON. Đối với quá trình này, có rất nhiều thư viện, tất cả các loại công cụ mà bạn có thể sử dụng. Một số trong số đó là phức tạp và một số thì đơn giản. Bản thân tôi, trong một thời gian dài, đã thành thật phân tích cú pháp JSON bằng tay của mình, không tin tưởng quá trình này vào một số thư viện của bên thứ ba và điều này có lợi thế của nó.

Vào ngày 9 tháng 9 năm 2014, trong buổi thuyết trình tiếp theo, Apple đã giới thiệu hệ thống thanh toán di động của riêng mình - Apple Pay.

Với Apple Pay, người dùng iPhone 6 và iPhone 6+ cũng như các phiên bản mới nhất của Apple Watch, có thể mua hàng trực tuyến, tận hưởng các lợi ích bổ sung của apple pay cho các ứng dụng di động và thực hiện thanh toán bằng công nghệ NFC (Giao tiếp trường gần). Để ủy quyền thanh toán, công nghệ Touch ID hoặc Face ID được sử dụng.

Các công nghệ không đứng yên, và các quá trình phát triển cũng di chuyển theo chúng. Nếu các công ty trước đây làm việc theo mô hình “Waterfall”, chẳng hạn như bây giờ, tất cả mọi người đều đang nỗ lực thực hiện “Scrum”. Sự tiến hóa cũng đang diễn ra trong việc cung cấp các dịch vụ phát triển phần mềm. Trước đây, các công ty cung cấp cho khách hàng sự phát triển có chất lượng trong phạm vi ngân sách chỉ dừng lại ở đó, nhưng giờ đây họ đang cố gắng mang lại lợi ích tối đa cho khách hàng và doanh nghiệp của họ bằng cách cung cấp kiến ​​thức chuyên môn của họ.

Trong vài năm qua, rất nhiều phông chữ tốt đã xuất hiện, bao gồm cả những phông chữ miễn phí, nên chúng tôi quyết định viết phần tiếp theo của chúng tôi cho các nhà thiết kế.

Mỗi nhà thiết kế đều có một bộ phông chữ yêu thích để làm việc với bộ phông chữ mà anh ta quen làm việc và điều đó phản ánh phong cách đồ họa của anh ta. Các nhà thiết kế nói "Không bao giờ có quá nhiều phông chữ tốt", nhưng bây giờ bạn có thể yên tâm hình dung một tình huống mà bộ này chỉ bao gồm các phông chữ miễn phí.

Các nhà quản lý dự án thường thấy mình như thế nào giữa một tảng đá và một nơi khó khăn khi cố gắng tìm sự cân bằng giữa tất cả các yêu cầu và thời hạn của khách hàng và sức khỏe tinh thần của toàn đội? Có bao nhiêu sắc thái cần phải được tính đến để có được hòa bình và trật tự cho cả hai bên trách nhiệm? Làm thế nào để hiểu bạn là một nhà quản lý giỏi hay bạn cần gấp rút bắt kịp mọi mặt trận? Làm thế nào để xác định xem bạn, với tư cách là một Thủ tướng, đang tụt lại ở những khía cạnh nào, và bạn giỏi và thông minh ở đâu? Đây chính xác là nội dung của hội nghị Code’n’Coffee tiếp theo.

Công nghệ nhận dạng hình ảnh ngày càng trở nên tích cực hơn trong cuộc sống hàng ngày của chúng ta. Các công ty và tổ chức sử dụng nó cho mọi thứ, từ bảo mật đến nghiên cứu sự hài lòng của khách hàng. Đầu tư vào các sản phẩm dựa trên tính năng này dự kiến ​​sẽ tăng lên 39 tỷ đô la vào năm 2021. Đây chỉ là một vài ví dụ về cách nhận dạng mẫu được sử dụng trong các lĩnh vực khác nhau.

Học sâu là gì? Ngày 3 tháng 3 năm 2016

Bây giờ họ nói về các công nghệ thời thượng của học sâu, như thể đó là manna từ thiên đường. Nhưng liệu những người nói có hiểu nó thực sự là gì không? Nhưng khái niệm này không có định nghĩa chính thức, và nó kết hợp cả đống công nghệ. Trong bài đăng này, tôi muốn giải thích càng phổ biến càng tốt, và trên thực tế, điều gì đằng sau thuật ngữ này, tại sao nó lại phổ biến như vậy và những công nghệ này mang lại cho chúng ta những gì.


Nói tóm lại, thuật ngữ mới mẻ này (học sâu) là về cách tập hợp một phần trừu tượng sâu và phức tạp hơn (biểu diễn) từ một số phần trừu tượng đơn giản. mặc dù thực tế là ngay cả những thông tin trừu tượng đơn giản nhất cũng phải được thu thập bởi chính máy tính chứ không phải bởi một người. Những thứ kia. Nó không chỉ là về việc học, mà là về meta-learning. Nói một cách hình tượng, bản thân máy tính phải học cách tốt nhất để học nó. Và, trên thực tế, thuật ngữ "sâu" chính xác là nghĩa của nó. Hầu như luôn luôn, thuật ngữ này được áp dụng cho các mạng nơ-ron nhân tạo, trong đó nhiều hơn một lớp ẩn được sử dụng, do đó, về mặt hình thức, “sâu” cũng có nghĩa là một kiến ​​trúc mạng nơ-ron sâu hơn.

Ở đây, trên slide đang được phát triển, bạn có thể thấy rõ học sâu khác với thông thường như thế nào. tôi lặp lại duy nhất đối với học sâu là máy tự tìm ra các tính năng(các tính năng chính của một thứ gì đó dễ dàng nhất để phân biệt một lớp đối tượng này với một lớp đối tượng khác) và các tính năng này được cấu trúc theo thứ bậc: những tính năng phức tạp hơn được tạo thành từ những tính năng đơn giản hơn.. Dưới đây chúng tôi sẽ khám phá điều này với một ví dụ.

Hãy xem một ví dụ về vấn đề nhận dạng hình ảnh: trước đây, họ đã nhồi một hình ảnh khổng lồ (1024 × 768 - khoảng 800.000 giá trị số) vào một mạng nơ-ron thông thường có một lớp và nhìn máy tính chết dần chết mòn vì thiếu bộ nhớ và không thể hiểu pixel nào quan trọng để nhận ra và pixel nào không. Chưa nói đến hiệu quả của phương pháp này. Đây là kiến ​​trúc của một mạng nơ-ron thông thường (nông) như vậy.

Tuy nhiên, sau đó, họ lắng nghe cách não bộ làm nổi bật các dấu hiệu, và nó thực hiện điều này một cách phân cấp nghiêm ngặt, đồng thời quyết định trích xuất cấu trúc phân cấp từ các bức ảnh. Để làm được điều này, cần phải thêm nhiều lớp ẩn (các lớp nằm giữa đầu vào và đầu ra; nói nôm na là các bước chuyển đổi thông tin) vào mạng nơ-ron. Mặc dù họ quyết định làm điều này gần như ngay lập tức, vì các tế bào thần kinh được phát minh, nhưng sau đó các mạng chỉ có một lớp ẩn đã được huấn luyện thành công. Những thứ kia. về nguyên tắc, các mạng sâu đã tồn tại tương đương với các mạng thông thường, chỉ là chúng tôi không thể đào tạo chúng. Điều gì đã thay đổi?

Năm 2006, một số nhà nghiên cứu độc lập đã giải quyết vấn đề này cùng một lúc (bên cạnh đó, năng lực phần cứng đã phát triển đủ, các card màn hình đủ mạnh đã xuất hiện). Các nhà nghiên cứu này là: Jeffrey Hinton (và đồng nghiệp của anh ấy Ruslan Salakhutidinov) với kỹ thuật đào tạo trước từng lớp của mạng nơ-ron bằng máy Boltzmann hạn chế (thứ lỗi cho tôi vì những thuật ngữ này ...), Jan Lekun với mạng nơ-ron tích tụ và Yoshuaia Bengio với mã tự động xếp tầng. Hai người đầu tiên ngay lập tức được Google và Facebook tuyển dụng. Đây là hai bài giảng: một - Hinton, cái khác - Lyakuna nơi họ giải thích học sâu là gì. Không ai có thể nói với bạn tốt hơn họ. Một tuyệt vời khác bài học Schmidhuber về sự phát triển của học sâu, cũng là một trong những trụ cột của ngành khoa học này. Và Hinton cũng có một khóa học tuyệt vời về tế bào thần kinh.

Các mạng nơ-ron sâu có khả năng gì hiện nay? Họ có thể nhận ra và mô tả các đối tượng, bạn có thể nói "hiểu" nó là gì. Đó là về hiểu ý nghĩa.

Chỉ cần xem video này về nhận dạng những gì máy ảnh nhìn thấy trong thời gian thực.

Như tôi đã nói, công nghệ học sâu là một nhóm toàn bộ các công nghệ và giải pháp. Tôi đã liệt kê một vài trong số chúng trong đoạn trên, một ví dụ khác là mạng lặp lại, chỉ được sử dụng trong video trên để mô tả những gì mạng nhìn thấy. Nhưng đại diện phổ biến nhất của lớp công nghệ này vẫn là mạng nơ-ron tích tụ của LaCun. Chúng được xây dựng bằng cách tương tự với các nguyên tắc hoạt động của vỏ não thị giác của não mèo, trong đó các tế bào được gọi là đơn giản được phát hiện, phản ứng với các đường thẳng ở các góc độ khác nhau và phức tạp - phản ứng của chúng liên quan đến kích hoạt một tập hợp các ô đơn giản nhất định. Mặc dù, thành thật mà nói, bản thân Lyakun không theo định hướng sinh học, anh ấy đã giải quyết một vấn đề cụ thể (xem các bài giảng của anh ấy), và sau đó nó cứ thế xảy ra.

Rất đơn giản, mạng chập là mạng mà phần tử cấu trúc chính của việc học là một nhóm (kết hợp) các nơ-ron (thường là hình vuông 3 × 3,10 × 10, v.v.), chứ không phải một. Và ở mỗi cấp của mạng, hàng chục nhóm như vậy được đào tạo. Mạng tìm thấy sự kết hợp của các nơ-ron giúp tối đa hóa thông tin về hình ảnh. Ở cấp độ đầu tiên, mạng này trích xuất các yếu tố cơ bản, cấu trúc đơn giản nhất của bức tranh - bạn có thể nói các khối xây dựng: đường viền, nét vẽ, phân đoạn, độ tương phản. Các kết hợp cao hơn - đã ổn định của các yếu tố của cấp độ đầu tiên, và cứ tiếp tục như vậy trong chuỗi. Tôi muốn nhấn mạnh một lần nữa đặc điểm chính của học sâu: bản thân các mạng hình thành nên những yếu tố này và quyết định cái nào quan trọng hơn và cái nào không. Điều này rất quan trọng, bởi vì trong lĩnh vực máy học, việc tạo ra các tính năng là chìa khóa, và bây giờ chúng ta đang chuyển sang giai đoạn khi máy tính tự học cách tạo và chọn các tính năng. Máy tự phân bổ một hệ thống phân cấp các tính năng thông tin.

Vì vậy, trong quá trình học tập (xem hàng trăm bức tranh), mạng tích tụ tạo thành một hệ thống phân cấp các tính năng ở các mức độ sâu khác nhau. Ở đây ở cấp độ đầu tiên, họ có thể làm nổi bật, ví dụ, các yếu tố như vậy (phản ánh độ tương phản, góc, đường viền, v.v.).


Ở cấp độ thứ hai, nó sẽ là một phần tử từ các phần tử của cấp độ đầu tiên. Vào thứ ba - từ thứ hai. Cần hiểu rằng bức ảnh này chỉ là một minh chứng. Hiện đang được sử dụng trong công nghiệp, các mạng như vậy có từ 10 đến 30 lớp (cấp độ).

Sau khi một mạng như vậy đã được huấn luyện, chúng ta có thể sử dụng nó để phân loại. Sau khi cung cấp một số hình ảnh làm đầu vào, các nhóm tế bào thần kinh của lớp đầu tiên chạy qua hình ảnh, kích hoạt ở những nơi có phần tử hình ảnh tương ứng với một phần tử cụ thể. Những thứ kia. mạng này phân tích bức tranh thành các phần - đầu tiên thành dấu gạch ngang, nét, góc, sau đó là các phần phức tạp hơn, và cuối cùng đi đến kết luận rằng một bức tranh từ sự kết hợp các yếu tố cơ bản này là một khuôn mặt.

Thông tin thêm về mạng phức hợp -

Cuộc cách mạng robot thông minh sắp tới đã được dự đoán 10 năm một lần kể từ những năm 1950. Tuy nhiên, nó đã không bao giờ xảy ra. Tiến bộ trong lĩnh vực này trí tuệ nhân tạo diễn ra thiếu chắc chắn, đôi khi nhàm chán, mang đến sự thất vọng cho nhiều người đam mê. Những thành công có thể nhìn thấy - chiếc máy tính Deep Blue, được tạo ra vào giữa những năm 1990 bởi IBM và đánh bại Garry Kasparov vào năm 1997 trong môn cờ vua, hay sự xuất hiện của một phiên dịch điện tử vào cuối những năm 1990 - là kết quả của những tính toán "thô bạo" hơn là việc chuyển cơ chế nhận thức của con người đối với các quá trình máy tính.

Tuy nhiên, lịch sử của những thất bại và thất bại giờ đây đang thay đổi đáng kể. Chỉ một thập kỷ trước, các thuật toán nhận dạng đối tượng và thị giác máy tính có thể xác định một quả bóng hoặc hộp trên nền đơn giản. Giờ đây, họ có thể phân biệt khuôn mặt của con người tốt như con người có thể, ngay cả khi dựa trên nền tự nhiên, phức tạp. Sáu tháng trước, Google đã phát hành một ứng dụng điện thoại thông minh có thể dịch văn bản từ hơn 20 ngôn ngữ nước ngoài bằng cách đọc các từ từ ảnh, biển báo hoặc văn bản viết tay!

Tất cả điều này đã trở thành khả thi sau khi hóa ra một số ý tưởng cũ trong lĩnh vực mạng nơ-ron, nếu được sửa đổi một chút bằng cách thêm "life", tức là bằng cách chiếu các chi tiết về nhận thức của con người và động vật, chúng có thể đưa ra một kết quả đáng kinh ngạc mà không ai ngờ tới. Khoảng thời gian này, cuộc cách mạng AI dường như thực sự có thật.

Các nghiên cứu về mạng nơ-ron trong lĩnh vực học máy trong hầu hết các trường hợp luôn được dành cho việc tìm kiếm các phương pháp mới để nhận dạng các loại dữ liệu khác nhau. Ví dụ: một máy tính được kết nối với máy ảnh, sử dụng thuật toán nhận dạng hình ảnh, phải có thể phân biệt được khuôn mặt người, tách trà hoặc con chó trong một bức ảnh chất lượng kém. Tuy nhiên, về mặt lịch sử, việc sử dụng mạng nơ-ron cho những mục đích này đã đi kèm với những khó khăn đáng kể. Ngay cả thành công nhỏ cũng cần đến sự can thiệp của con người - mọi người đã giúp chương trình xác định các đặc điểm quan trọng của hình ảnh, chẳng hạn như đường viền hình ảnh hoặc các hình dạng hình học đơn giản. Các thuật toán hiện tại không thể tự học cách làm điều này.

Tình hình đã thay đổi đáng kể với sự ra đời của cái gọi là mạng nơ-ron học sâu, hiện có thể phân tích hình ảnh hiệu quả gần như con người. Các mạng nơ-ron như vậy sử dụng hình ảnh chất lượng kém làm đầu vào cho các "nơ-ron" của cấp độ đầu tiên, sau đó chuyển "hình ảnh" qua các kết nối phi tuyến tính đến các nơ-ron của cấp độ tiếp theo. Sau một số khóa đào tạo, các "tế bào thần kinh" cấp cao hơn có thể sử dụng các khía cạnh trừu tượng hơn của hình ảnh để nhận dạng. Ví dụ: họ có thể sử dụng các chi tiết như đường viền của hình ảnh hoặc cách nó được định vị trong không gian. Thật đáng ngạc nhiên, những mạng như vậy có thể học cách đánh giá các tính năng quan trọng nhất của hình ảnh mà không cần sự trợ giúp của con người!

Một ví dụ tuyệt vời về việc sử dụng mạng nơ-ron học sâu là nhận dạng các đối tượng giống nhau được chụp từ các góc khác nhau hoặc ở các tư thế khác nhau (nếu chúng ta đang nói về một người hoặc một động vật). Các thuật toán sử dụng tính năng quét từng pixel “nghĩ” rằng chúng đang đối mặt với hai hình ảnh khác nhau, trong khi mạng nơ-ron “thông minh” “hiểu” rằng chúng đang đối mặt với cùng một đối tượng. Và ngược lại - hình ảnh của hai con chó thuộc các giống khác nhau, được chụp trong cùng một tư thế, có thể được các thuật toán trước đó coi là ảnh của cùng một con chó. Mạng nơ-ron học sâu có thể làm nổi bật các chi tiết trong hình ảnh để giúp chúng phân biệt giữa các loài động vật.

Sự kết hợp của các kỹ thuật học sâu, kiến ​​thức khoa học thần kinh tiên tiến và sức mạnh của máy tính hiện đại mở ra triển vọng cho trí tuệ nhân tạo mà chúng ta thậm chí chưa thể đánh giá được. Đúng vậy, rõ ràng là tâm trí không chỉ có bản chất sinh học.