Mạng lưới thần kinh học sâu. Mạng lưới thần kinh là gì? Video và bài giảng

Đã hơn 20 năm trôi qua kể từ khi thuật ngữ “học sâu” được đặt ra, nhưng mọi người chỉ mới bắt đầu nói về nó gần đây. Chúng tôi giải thích ngắn gọn lý do tại sao điều này xảy ra, deep learning là gì, nó khác với machine learning như thế nào và tại sao bạn cần biết về nó.

  • Nó là gì?

    Học sâu là một nhánh của học máy sử dụng mô hình lấy cảm hứng từ cách hoạt động của bộ não - cách các tế bào thần kinh tương tác.

    Bản thân thuật ngữ này đã xuất hiện từ những năm 1980 nhưng phải đến năm 2012 mới có đủ năng lực để triển khai công nghệ này và hầu như không ai để ý đến nó. Sau hàng loạt bài viết của các nhà khoa học nổi tiếng và bài đăng trên các tạp chí khoa học, công nghệ này nhanh chóng trở nên phổ biến và nhận được sự quan tâm của các phương tiện truyền thông lớn - The New York Times là cơ quan truyền thông thế giới đầu tiên viết về nó. Một trong những nguyên nhân khiến vật liệu công trình khoa học các chuyên gia từ các trường đại học Toronto Alex Krizhevsky, Ilya Satskever và Jeff Hinton. Họ đã mô tả và phân tích kết quả của cuộc thi nhận dạng hình ảnh ImageNet, trong đó mạng lưới thần kinh của họ được đào tạo bằng phương pháp học sâu đã giành chiến thắng với tỷ số cách biệt lớn - hệ thống đã xác định được 85% đối tượng. Kể từ đó, chỉ có mạng lưới thần kinh sâu mới giành chiến thắng trong cuộc thi

  • Đợi đã, học máy là gì?

    Đây là một trường con của trí tuệ nhân tạo và là thuật ngữ mô tả các phương pháp xây dựng các thuật toán học hỏi từ kinh nghiệm mà không cần viết chương trình đặc biệt. Nghĩa là, trong trường hợp này, một người không cần phải giải thích cho máy cách giải quyết vấn đề; nó tự tìm ra câu trả lời từ dữ liệu được cung cấp cho nó. Ví dụ: nếu muốn thuật toán nhận dạng khuôn mặt, chúng ta phải hiển thị cho nó mười nghìn khuôn mặt khác nhau, lưu ý chính xác vị trí của khuôn mặt và sau đó chương trình sẽ tự học cách nhận dạng khuôn mặt đó.

    Máy có thể học cả với sự trợ giúp của giáo viên, khi giáo viên đánh dấu các câu trả lời đúng cho máy và không có giáo viên. Nhưng kết quả sẽ tốt hơn khi học với giáo viên. Mỗi khi quá trình xử lý dữ liệu diễn ra, hệ thống sẽ trở nên chính xác hơn.

  • Học sâu hoạt động như thế nào?

    Nó bắt chước tư duy trừu tượng của con người và có khả năng khái quát hóa. Ví dụ: mạng nơ-ron được đào tạo bằng máy không nhận dạng tốt các chữ viết tay - và do đó nó không bị nhầm lẫn trong Các tùy chọn khác nhau viết, tất cả đều phải được tải vào đó.

    Học sâu được sử dụng khi làm việc với mạng lưới thần kinh nhân tạo nhiều lớp và có thể giải quyết được nhiệm vụ này.

    “Gần đây có ba thuật ngữ thường được sử dụng gần như thay thế cho nhau: trí tuệ nhân tạo, học máy và học sâu. Tuy nhiên, đây thực sự là những thuật ngữ “lồng nhau”: trí tuệ nhân tạo là bất cứ thứ gì có thể giúp máy tính thực hiện các nhiệm vụ của con người; học máy là một nhánh của AI, trong đó các chương trình không chỉ giải quyết vấn đề mà còn học dựa trên kinh nghiệm mà chúng có và học sâu là một nhánh của học máy nghiên cứu mạng lưới thần kinh sâu.

    Nói một cách đơn giản: 1.nếu bạn viết một chương trình chơi cờ, đó là trí tuệ nhân tạo; 2.nếu nó học dựa trên các trò chơi đại kiện tướng hoặc bằng cách đấu với chính nó thì đây là máy học; 3.và nếu nó học được từ nó không chỉ bất cứ thứ gì mà còn từ mạng lưới thần kinh sâu, thì đó là học sâu.”.

  • Học sâu hoạt động như thế nào?

    Hãy lấy một ví dụ đơn giản - chúng tôi sẽ hiển thị các bức ảnh mạng lưới thần kinh mô tả một cậu bé và một cô gái. Ở lớp đầu tiên, tế bào thần kinh phản ứng với những hình ảnh trực quan đơn giản, chẳng hạn như sự thay đổi độ sáng. Về thứ hai - phức tạp hơn: góc, hình tròn. Đến lớp thứ ba, tế bào thần kinh có thể phản ứng với các dòng chữ và khuôn mặt con người. Đối với mỗi lớp tiếp theo, hình ảnh được xác định sẽ phức tạp hơn. Chính mạng lưới thần kinh sẽ xác định cái nào Các yếu tố hình ảnh cô ấy quan tâm đến việc giải quyết vấn đề này và xếp chúng theo thứ tự quan trọng để sau này hiểu rõ hơn những gì được hiển thị trong bức ảnh.

  • Và bạn đã phát triển được những gì với nó?

    Hầu hết các dự án học sâu đều được sử dụng trong nhận dạng hình ảnh hoặc âm thanh và chẩn đoán bệnh. Ví dụ: nó đã được sử dụng trong bản dịch của Google từ hình ảnh: công nghệ Học kĩ càng cho phép bạn xác định xem có các chữ cái trong ảnh hay không, sau đó dịch chúng. Một dự án khác hoạt động với ảnh là hệ thống nhận dạng khuôn mặt có tên DeepFace. Nó có thể nhận dạng khuôn mặt con người với độ chính xác 97,25% - độ chính xác gần tương đương với con người.

    Năm 2016, Google phát hành WaveNet, một hệ thống có thể mô phỏng giọng nói của con người. Để làm được điều này, hãng đã tải lên hệ thống hàng triệu phút dữ liệu được ghi lại. yêu cầu bằng giọng nói, được sử dụng trong dự án OK Google và sau khi nghiên cứu, bản thân mạng lưới thần kinh đã có thể soạn các câu với trọng âm, sự nhấn mạnh chính xác và không có những khoảng dừng phi logic.

    Đồng thời, học sâu có thể phân đoạn một hình ảnh hoặc video theo ngữ nghĩa - nghĩa là không chỉ chỉ ra rằng có một đối tượng trong ảnh mà còn làm nổi bật các đường viền của nó một cách lý tưởng. Công nghệ này được sử dụng trong ô tô tự lái để phát hiện vật cản trên đường, vạch kẻ đường và đọc biển báo đường để tránh tai nạn. Mạng lưới thần kinh cũng được sử dụng trong y học - chẳng hạn như để xác định bệnh võng mạc tiểu đường từ ảnh chụp mắt của bệnh nhân. Bộ Y tế Hoa Kỳ đã cho phép sử dụng công nghệ này trong các phòng khám của chính phủ.

  • Tại sao họ không bắt đầu triển khai deep learning sớm hơn?

    Trước đây, việc này rất tốn kém, khó khăn và tốn thời gian - bạn cần bộ xử lý đồ họa, card màn hình và bộ nhớ mạnh mẽ. Sự bùng nổ của deep learning có liên quan chính xác đến sự phổ biến rộng rãi của GPU, giúp tăng tốc và giảm chi phí tính toán, khả năng lưu trữ dữ liệu hầu như không giới hạn và sự phát triển của công nghệ “dữ liệu lớn”.

  • Đây là công nghệ mang tính đột phá, liệu nó có thay đổi được mọi thứ?

    Thật khó để nói chắc chắn về điều này; có nhiều ý kiến ​​khác nhau. Một mặt, Google, Facebook và các công ty lớn khác đã đầu tư hàng tỷ đô la và tỏ ra lạc quan. Theo ý kiến ​​của họ, mạng lưới thần kinh với deep learning có thể thay đổi Thiết bị công nghệ hòa bình. Một trong những chuyên gia hàng đầu về học máy, Andrew Ng, cho biết: “Nếu một người có thể thực hiện một nhiệm vụ trong đầu trong một giây, rất có thể nhiệm vụ đó sẽ được tự động hóa trong tương lai gần”. Ng gọi machine learning là “nguồn điện mới” - đó là một cuộc cách mạng công nghệ và các công ty bỏ qua nó sẽ nhanh chóng thấy mình bị tụt hậu so với đối thủ một cách vô vọng.

    Mặt khác, cũng có những người hoài nghi: họ tin rằng học sâu là một từ thông dụng hoặc một cách đổi tên thương hiệu của mạng lưới thần kinh. Ví dụ, giảng viên cao cấp của khoa khoa học máy tính HSE Sergei Bartunov tin rằng thuật toán này chỉ là một trong những lựa chọn (chứ không phải là tốt nhất) để huấn luyện mạng lưới thần kinh, thuật toán này đã nhanh chóng được các ấn phẩm đại chúng săn đón và giờ đây mọi người đều biết đến.

    Sergey Nikolenko, đồng tác giả cuốn sách “Học sâu”: “Lịch sử trí tuệ nhân tạo đã trải qua hai “mùa đông”, khi làn sóng cường điệu và kỳ vọng cao kéo theo sự thất vọng. Nhân tiện, cả hai lần, nó đều được kết nối với mạng lưới thần kinh. Đầu tiên, vào cuối những năm 1950, người ta quyết định rằng perceptron của Rosenblatt sẽ ngay lập tức dẫn đến dịch máy và máy tính tự nhận thức; nhưng tất nhiên là nó không thành công do phần cứng, dữ liệu hạn chế và thiếu mô hình phù hợp.

    Và vào cuối những năm 1980, sai lầm tương tự cũng xảy ra khi họ tìm ra cách đào tạo bất kỳ kiến ​​trúc mạng lưới thần kinh nào. Dường như nó đây rồi, một chiếc chìa khóa vàng có thể mở được bất kỳ cánh cửa nào. Đây không còn là một kết luận ngây thơ nữa: thực sự, nếu bạn lấy một mạng lưới thần kinh từ cuối những năm 1980, làm cho nó lớn hơn một cách cơ học (tăng số lượng nơ-ron) và huấn luyện nó trên các bộ dữ liệu hiện đại và phần cứng hiện đại, nó sẽ hoạt động rất tốt! Nhưng lúc đó không có đủ dữ liệu hoặc phần cứng, và cuộc cách mạng học kĩ càngđã phải hoãn lại cho đến cuối những năm 2000.

    Chúng ta hiện đang sống trong làn sóng cường điệu trí tuệ nhân tạo thứ ba. Liệu nó sẽ kết thúc vào “mùa đông” thứ ba hay việc tạo ra AI mạnh mẽ, chỉ có thời gian mới trả lời được.”

  • Ngày nay có rất nhiều cuộc nói chuyện và viết về mạng lưới thần kinh nhân tạo, cả trong bối cảnh dữ liệu lớn và học máy cũng như bên ngoài nó. Trong bài viết này, chúng tôi sẽ nhắc lại ý nghĩa của khái niệm này, một lần nữa phác thảo phạm vi ứng dụng của nó, đồng thời nói về một cách tiếp cận quan trọng liên quan đến mạng lưới thần kinh - học sâu, chúng tôi sẽ mô tả khái niệm của nó, cũng như những ưu điểm và nhược điểm trong các trường hợp sử dụng cụ thể.

    Mạng lưới thần kinh là gì?

    Như bạn đã biết, khái niệm mạng lưới thần kinh (NN) xuất phát từ sinh học và là một mô hình đơn giản hóa về cấu trúc của bộ não con người. Nhưng chúng ta đừng đi sâu vào sự hoang dã của khoa học tự nhiên - cách dễ nhất là tưởng tượng một tế bào thần kinh (bao gồm cả tế bào nhân tạo) như một loại hộp đen có nhiều lỗ đầu vào và một đầu ra.

    Về mặt toán học, nơ-ron nhân tạo chuyển đổi vectơ tín hiệu đầu vào (tác động) X thành vectơ tín hiệu đầu ra Y bằng cách sử dụng hàm gọi là hàm kích hoạt. Trong kết nối (mạng nơ-ron nhân tạo - ANN), ba loại nơ-ron có chức năng: đầu vào (nhận thông tin từ thế giới bên ngoài - giá trị của các biến mà chúng ta quan tâm), đầu ra (trả về các biến mong muốn - ví dụ: dự báo hoặc tín hiệu điều khiển), cũng như các tế bào thần kinh trung gian, thực hiện một số chức năng bên trong (“ẩn”) nhất định. Do đó, ANN cổ điển bao gồm ba lớp nơ-ron trở lên và trong lớp thứ hai và lớp tiếp theo (“ẩn” và lớp đầu ra), mỗi phần tử được kết nối với tất cả các phần tử của lớp trước đó.

    Điều quan trọng cần nhớ là khái niệm nhận xét, xác định loại cấu trúc ANN: truyền tín hiệu trực tiếp (tín hiệu đi tuần tự từ lớp đầu vào qua lớp ẩn và đi vào lớp đầu ra) và cấu trúc tái phát, khi mạng chứa các kết nối quay trở lại, từ các nơ-ron xa hơn đến các nơ-ron gần hơn). Tất cả những khái niệm này tạo nên đòi hỏi tối thiểu thông tin để chuyển sang cấp độ hiểu biết tiếp theo về ANN - đào tạo mạng lưới thần kinh, phân loại các phương pháp của nó và hiểu nguyên tắc hoạt động của từng phương pháp đó.

    Đào tạo mạng lưới thần kinh

    Chúng ta không nên quên lý do tại sao những phạm trù như vậy nói chung được sử dụng - nếu không sẽ có nguy cơ sa lầy vào toán học trừu tượng. Trên thực tế, mạng nơ ron nhân tạo được hiểu là một lớp các phương pháp giải quyết một số vấn đề thực tế nhất định, trong đó chủ yếu là các vấn đề về nhận dạng mẫu, ra quyết định, xấp xỉ và nén dữ liệu, cũng như các vấn đề thú vị nhất đối với chúng ta về cụm. phân tích và dự báo.

    Không đi sang hướng cực đoan khác và không đi sâu vào chi tiết hoạt động của các phương pháp ANN trong từng trường hợp cụ thể, chúng ta hãy tự nhắc nhở mình rằng trong mọi trường hợp, đó là khả năng học của mạng lưới thần kinh (với giáo viên hoặc “tự học”) ) đó là điểm quan trọng dụng nó để giải quyết các vấn đề thực tiễn.

    Nói chung, việc đào tạo ANN như sau:

    1. nơ-ron đầu vào nhận các biến (“kích thích”) từ môi trường bên ngoài;
    2. theo thông tin nhận được, các tham số tự do của mạng nơ-ron thay đổi (các lớp nơ-ron trung gian hoạt động);
    3. Do những thay đổi trong cấu trúc của mạng nơron, mạng “phản ứng” với thông tin theo một cách khác.

    Đây là thuật toán chung để huấn luyện mạng lưới thần kinh (hãy nhớ đến con chó của Pavlov - vâng, đó chính xác là cơ chế bên trong để hình thành phản xạ có điều kiện - và hãy quên ngay: xét cho cùng, bối cảnh của chúng ta liên quan đến việc vận hành với các khái niệm và ví dụ kỹ thuật).

    Rõ ràng là một thuật toán học tập phổ quát không tồn tại và rất có thể không thể tồn tại; Về mặt khái niệm, các phương pháp học tập được chia thành học tập có giám sát và học tập không giám sát. Thuật toán đầu tiên giả định rằng đối với mỗi vectơ đầu vào (“học”) có một giá trị bắt buộc của vectơ đầu ra (“đích”) - do đó, hai giá trị này tạo thành một cặp huấn luyện và toàn bộ tập hợp các cặp đó là tập huấn luyện. Trong trường hợp học không giám sát, tập huấn luyện chỉ bao gồm các vectơ đầu vào - và tình huống này hợp lý hơn theo quan điểm của cuộc sống thực.

    Học kĩ càng

    Khái niệm học sâu đề cập đến một phân loại khác và biểu thị một cách tiếp cận để đào tạo cái gọi là cấu trúc sâu, bao gồm các mạng lưới thần kinh đa cấp. Một ví dụ đơn giản từ lĩnh vực nhận dạng hình ảnh: cần phải dạy một chiếc máy xác định các đặc điểm ngày càng trừu tượng theo các đặc điểm trừu tượng khác, nghĩa là xác định mối quan hệ giữa biểu hiện của toàn bộ khuôn mặt, mắt và miệng, và, cuối cùng là các cụm pixel màu về mặt toán học. Do đó, trong mạng lưới thần kinh sâu, mỗi cấp độ tính năng có lớp riêng; Rõ ràng là việc đào tạo một “khổng lồ” như vậy đòi hỏi kinh nghiệm thích hợp của các nhà nghiên cứu và trình độ phần cứng. Các điều kiện có lợi cho việc học thần kinh sâu chỉ được phát triển vào năm 2006 - và tám năm sau, chúng ta có thể nói về cuộc cách mạng mà phương pháp này đã tạo ra trong học máy.

    Vì vậy, trước hết, trong bối cảnh bài viết của chúng tôi, cần lưu ý điều sau: học sâu trong hầu hết các trường hợp không được giám sát bởi một người. Nghĩa là, cách tiếp cận này liên quan đến việc đào tạo mạng lưới thần kinh mà không cần giáo viên. Đây là ưu điểm chính của phương pháp tiếp cận “sâu”: học máy có giám sát, đặc biệt trong trường hợp cấu trúc sâu, đòi hỏi chi phí về thời gian và nhân công rất lớn. Mặt khác, học sâu là một cách tiếp cận mô hình hóa (hoặc ít nhất là cố gắng ước tính) tư duy trừu tượng của con người, thay vì sử dụng nó.

    Ý tưởng, như thường lệ, thật tuyệt vời, nhưng những vấn đề khá tự nhiên nảy sinh trong cách tiếp cận - trước hết, bắt nguồn từ những tuyên bố của nó về tính phổ quát. Trên thực tế, trong khi các phương pháp học sâu đã đạt được thành công đáng kể trong lĩnh vực nhận dạng hình ảnh, thì việc xử lý ngôn ngữ tự nhiên tương tự vẫn đặt ra nhiều câu hỏi hơn là câu trả lời. Rõ ràng là trong n năm tới khó có thể tạo ra một “Leonardo Da Vinci nhân tạo” hoặc thậm chí - ít nhất là vậy! - “con người nhân tạo”.

    Tuy nhiên, các nhà nghiên cứu trí tuệ nhân tạo đã phải đối mặt với câu hỏi về đạo đức: những nỗi sợ hãi thể hiện trong mọi bộ phim khoa học viễn tưởng đầy tự trọng, từ “Kẻ hủy diệt” đến “Transformers”, dường như không còn buồn cười nữa (mạng lưới thần kinh phức tạp hiện đại có thể được coi là hợp lý). mô hình hóa công việc của bộ não côn trùng!), nhưng hiện tại rõ ràng là không cần thiết.

    Tương lai công nghệ lý tưởng xuất hiện với chúng ta như một thời đại mà con người có thể giao phần lớn quyền lực của mình cho một cỗ máy - hoặc ít nhất có thể cho phép nó tạo điều kiện thuận lợi cho một phần quan trọng trong công việc trí tuệ của mình. Khái niệm học sâu là một bước hướng tới ước mơ này. Con đường phía trước còn dài, nhưng rõ ràng là mạng lưới thần kinh và các phương pháp tiếp cận ngày càng phát triển liên quan đến chúng có khả năng hiện thực hóa khát vọng của các nhà văn khoa học viễn tưởng theo thời gian.

    Học sâu đang thay đổi mô hình làm việc với văn bản, nhưng nó đang gây ra sự hoài nghi giữa các nhà ngôn ngữ học tính toán và nhà khoa học dữ liệu. Mạng lưới thần kinh là một công cụ học máy mạnh mẽ nhưng tầm thường.

    03.05.2017 Dmitry Ilvovsky, Ekaterina Chernyak

    Mạng lưới thần kinh có thể tìm thấy các kết nối và mẫu ẩn trong văn bản, nhưng những kết nối này không thể được trình bày một cách rõ ràng. Mạng lưới thần kinh, mặc dù mạnh mẽ, nhưng lại là một công cụ khá tầm thường, gây ra sự hoài nghi giữa các công ty phát triển giải pháp công nghiệp trong lĩnh vực phân tích dữ liệu và giữa các nhà ngôn ngữ học tính toán hàng đầu.

    Niềm đam mê chung với công nghệ mạng lưới thần kinh và học sâu đã không bỏ qua ngôn ngữ học máy tính - xử lý tự động văn bản bằng ngôn ngữ tự nhiên. Tại các hội nghị gần đây của Hiệp hội Ngôn ngữ học tính toán ACL, diễn đàn khoa học chính trong lĩnh vực này, phần lớn các báo cáo được dành cho việc sử dụng mạng lưới thần kinh để giải quyết các vấn đề đã biết và khám phá những vấn đề mới chưa được giải quyết bằng cách sử dụng mạng lưới thần kinh. phương tiện chuẩn học máy. Sự chú ý ngày càng tăng của các nhà ngôn ngữ học đến mạng lưới thần kinh là do một số lý do. Việc sử dụng mạng nơron, trước hết, cải thiện đáng kể chất lượng giải quyết một số vấn đề tiêu chuẩn về phân loại văn bản và trình tự, thứ hai, nó làm giảm cường độ lao động khi làm việc trực tiếp với văn bản và thứ ba, nó cho phép giải quyết các vấn đề mới (ví dụ: tạo trò chuyện bot). Đồng thời, mạng lưới thần kinh không thể được coi là một cơ chế hoàn toàn độc lập để giải quyết các vấn đề ngôn ngữ.

    Công việc đầu tiên trên học kĩ càng(học sâu) có từ giữa thế kỷ 20. Đầu những năm 1940, Warren McCulloch và Walter Pitts đã đề xuất một mô hình chính thức của bộ não con người - một mạng lưới thần kinh nhân tạo, và một thời gian sau Frank Rosenblatt đã khái quát hóa công việc của họ và tạo ra một mô hình mạng lưới thần kinh trên máy tính. Công việc đầu tiên về đào tạo mạng lưới thần kinh bằng thuật toán lan truyền ngược có từ những năm 1960 (thuật toán tính toán lỗi dự đoán và giảm thiểu nó bằng các phương pháp tối ưu hóa ngẫu nhiên). Tuy nhiên, hóa ra, bất chấp vẻ đẹp và sự sang trọng của ý tưởng mô phỏng bộ não, việc huấn luyện mạng lưới thần kinh “truyền thống” tốn rất nhiều thời gian và kết quả phân loại trên các tập dữ liệu nhỏ có thể so sánh với kết quả thu được nhiều hơn. phương pháp đơn giản, ví dụ: máy vectơ hỗ trợ (SVM). Kết quả là, mạng lưới thần kinh đã bị lãng quên trong 40 năm, nhưng ngày nay chúng lại trở thành nhu cầu khi làm việc với khối lượng lớn dữ liệu, hình ảnh và văn bản phi cấu trúc.

    Từ quan điểm hình thức, mạng nơ-ron là một đồ thị có hướng của một kiến ​​trúc nhất định, các đỉnh hoặc nút của nó được gọi là tế bào thần kinh. Cấp độ đầu tiên của biểu đồ chứa các nút đầu vào, cấp độ cuối cùng chứa các nút đầu ra, số lượng nút phụ thuộc vào nhiệm vụ. Ví dụ, để phân loại thành hai lớp, một hoặc hai nơ-ron có thể được đặt ở lớp đầu ra của mạng; để phân loại thành k lớp, có thể đặt k nơ-ron. Tất cả các cấp độ khác trong biểu đồ mạng nơ-ron thường được gọi là các lớp ẩn. Tất cả các nơ-ron nằm ở cùng cấp độ được kết nối bằng các cạnh với tất cả các nơ-ron cấp độ tiếp theo, mỗi cạnh có một trọng số. Mỗi nơ-ron được gán một chức năng kích hoạt mô hình hóa hoạt động của các nơ-ron sinh học: chúng “im lặng” khi tín hiệu đầu vào yếu và khi giá trị của nó vượt quá một ngưỡng nhất định, chúng sẽ được kích hoạt và truyền giá trị đầu vào xa hơn dọc theo mạng. Nhiệm vụ của việc huấn luyện mạng lưới thần kinh từ các ví dụ (nghĩa là từ các cặp câu trả lời đúng đối tượng) là tìm ra các trọng số cạnh dự đoán tốt nhất các câu trả lời đúng. Rõ ràng chính kiến ​​trúc - cấu trúc liên kết của đồ thị mạng nơ-ron - chính là nó thông số quan trọng nhất. Mặc dù chưa có định nghĩa chính thức cho “mạng sâu”, nhưng nhìn chung người ta chấp nhận rằng tất cả các mạng thần kinh bao gồm số lượng lớn các lớp hoặc có các lớp “không chuẩn” (ví dụ: chỉ chứa các liên kết được chọn hoặc sử dụng đệ quy với các lớp khác).

    Một ví dụ về việc sử dụng mạng thần kinh thành công nhất cho đến nay là phân tích hình ảnh, nhưng công nghệ mạng thần kinh cũng đã thay đổi hoàn toàn công việc xử lý dữ liệu văn bản. Nếu trước đây mỗi thành phần của văn bản (chữ cái, từ hoặc câu) phải được mô tả bằng nhiều đặc điểm có tính chất khác nhau (hình thái, cú pháp, ngữ nghĩa, v.v.) thì giờ đây, trong nhiều nhiệm vụ, nhu cầu mô tả phức tạp không còn nữa. Các nhà lý thuyết và người thực hành công nghệ mạng thần kinh thường nói về “học tập biểu diễn” - ở dạng văn bản thô, chỉ được chia thành các từ và câu, mạng lưới thần kinh có thể tìm thấy các phần phụ thuộc và mẫu và tạo ra một không gian đặc trưng một cách độc lập. Thật không may, trong một không gian như vậy, một người sẽ không hiểu bất cứ điều gì - trong quá trình đào tạo, mạng lưới thần kinh gán cho mỗi phần tử của văn bản một vectơ dày đặc bao gồm các số nhất định đại diện cho các mối quan hệ “sâu” được phát hiện. Sự nhấn mạnh khi làm việc với văn bản đang chuyển từ việc xây dựng một tập hợp con các đối tượng và tìm kiếm căn cứ bên ngoài kiến thức để chọn nguồn dữ liệu và văn bản đánh dấu để đào tạo mạng lưới thần kinh tiếp theo, đòi hỏi nhiều dữ liệu hơn đáng kể so với phương pháp tiêu chuẩn. Chính vì nhu cầu sử dụng lượng lớn dữ liệu và do khả năng diễn giải và khó đoán kém mà mạng lưới thần kinh không có nhu cầu trong ứng dụng thực tế quy mô công nghiệp, không giống như các thuật toán học tập được thiết lập tốt khác như rừng ngẫu nhiên và máy vectơ hỗ trợ. Tuy nhiên, mạng lưới thần kinh được sử dụng trong một số nhiệm vụ xử lý tự động văn bản (Hình 1).

    Một trong những ứng dụng phổ biến nhất của mạng nơ-ron là xây dựng các vectơ từ liên quan đến lĩnh vực ngữ nghĩa phân phối: người ta tin rằng nghĩa của một từ có thể được hiểu theo nghĩa của ngữ cảnh của nó, bởi các từ xung quanh. Thật vậy, nếu chúng ta không quen với một số từ trong văn bản trên ngôn ngữ đã biết, thì trong hầu hết các trường hợp, bạn có thể đoán được ý nghĩa của nó. Mô hình toán họcÝ nghĩa của một từ là các vectơ của từ: các hàng trong một ma trận “ngữ cảnh từ” lớn, được xây dựng từ một kho văn bản khá lớn. Các từ lân cận, các từ có cùng cấu trúc cú pháp hoặc ngữ nghĩa với từ đã cho, v.v. có thể đóng vai trò là “ngữ cảnh” cho một từ cụ thể. Tần số có thể được ghi lại trong các ô của ma trận đó (từ đó xuất hiện bao nhiêu lần trong một ngữ cảnh nhất định), nhưng thường sử dụng hệ số thông tin lẫn nhau theo cặp tích cực (Thông tin tương hỗ theo điểm tích cực, PPMI), cho thấy mức độ xuất hiện không ngẫu nhiên của một từ trong một ngữ cảnh cụ thể. Các ma trận như vậy có thể được sử dụng khá thành công để phân cụm các từ hoặc để tìm kiếm các từ có nghĩa gần với từ tìm kiếm.

    Vào năm 2013, Tomas Mikolov đã xuất bản một bài báo trong đó ông đề xuất sử dụng mạng nơ-ron để huấn luyện vectơ từ, nhưng với kích thước nhỏ hơn: sử dụng các bộ dữ liệu (từ, ngữ cảnh), một mạng nơ-ron có kiến ​​trúc đơn giản nhất đã được huấn luyện và ở đầu ra, mỗi từ được gán một vectơ gồm 300 phần tử. Hóa ra những vectơ như vậy truyền tải tốt hơn sự gần gũi về mặt ngữ nghĩa của các từ. Ví dụ, chúng có thể được sử dụng để xác định các phép tính toán học cộng trừ ý nghĩa và thu được phương trình: “Paris – Pháp + Nga = Moscow”; “vua – đàn ông + đàn bà = nữ hoàng.” Hoặc tìm thêm một từ trong chuỗi “táo, lê, anh đào, mèo con”. Tác phẩm trình bày hai kiến ​​trúc, Skip-gram và CBOW (Túi từ liên tục), dưới tên chung là word2vec. Như được hiển thị sau trong , word2vec không gì khác hơn là phân tích nhân tử của ma trận ngữ cảnh từ có trọng số PPMI. Hiện nay, người ta thường phân loại word2vec theo ngữ nghĩa phân phối hơn là học sâu, nhưng động lực ban đầu để tạo ra mô hình này là việc sử dụng mạng lưới thần kinh. Ngoài ra, hóa ra các vectơ word2vec đóng vai trò là sự thể hiện thuận tiện về ý nghĩa của một từ, có thể được cung cấp làm đầu vào cho các mạng thần kinh sâu được sử dụng để phân loại văn bản.

    Nhiệm vụ phân loại văn bản là một trong những nhiệm vụ cấp bách nhất đối với các nhà tiếp thị, đặc biệt khi Chúng ta đang nói về về việc phân tích ý kiến ​​hoặc thái độ của người tiêu dùng đối với một sản phẩm hoặc dịch vụ, vì vậy các nhà nghiên cứu không ngừng nỗ lực để cải thiện chất lượng giải pháp của nó. Tuy nhiên, phân tích ý kiến ​​​​là nhiệm vụ phân loại câu chứ không phải văn bản - trong một bài đánh giá tích cực, người dùng có thể viết một hoặc hai câu phủ định và điều quan trọng là phải có khả năng xác định và phân tích chúng. Một khó khăn nổi tiếng trong việc phân loại câu nằm ở độ dài thay đổi của đầu vào - vì các câu trong văn bản có thể có độ dài tùy ý nên không rõ làm thế nào để gửi chúng đến đầu vào của mạng lưới thần kinh. Một cách tiếp cận được mượn từ lĩnh vực phân tích hình ảnh và liên quan đến việc sử dụng mạng nơ ron tích chập (CNN) (Hình 2).

    Đầu vào của mạng nơ ron tích chập là một câu trong đó mỗi từ đã được biểu thị bằng một vectơ (vectơ của các vectơ). Thông thường, các mô hình word2vec được đào tạo trước được sử dụng để biểu diễn các từ dưới dạng vectơ. Mạng nơ ron tích chập bao gồm hai lớp: lớp tích chập “sâu” và lớp ẩn thông thường. Lớp tích chập lần lượt bao gồm các bộ lọc và lớp “lấy mẫu con”. Bộ lọc là một nơ-ron có đầu vào được hình thành bằng cách sử dụng các cửa sổ di chuyển qua văn bản và chọn một số từ nhất định theo tuần tự (ví dụ: cửa sổ có độ dài “ba” sẽ chọn ba từ đầu tiên, các từ từ thứ hai đến thứ tư, từ thứ ba đến thứ năm, v.v.). Ở đầu ra của bộ lọc, một vectơ được hình thành tổng hợp tất cả các vectơ của các từ có trong nó. Sau đó, một vectơ duy nhất tương ứng với toàn bộ đề xuất được tạo ở lớp lấy mẫu con, được tính là mức tối đa theo thành phần của tất cả các vectơ bộ lọc đầu ra. Mạng lưới thần kinh tích chập rất dễ đào tạo và triển khai. Để huấn luyện chúng, người ta sử dụng thuật toán lan truyền ngược tiêu chuẩn và do trọng số của các bộ lọc được phân bố đồng đều (trọng lượng của từ thứ i từ cửa sổ là như nhau đối với bất kỳ bộ lọc nào), số lượng tham số cho một mạng lưới thần kinh tích chập là nhỏ. Từ quan điểm của ngôn ngữ học máy tính, mạng nơ ron tích chập là công cụ đắc lực Tuy nhiên, để phân loại, nó không có bất kỳ trực giác ngôn ngữ nào đằng sau nó, điều này làm phức tạp đáng kể việc phân tích các lỗi thuật toán.

    Phân loại trình tự là nhiệm vụ trong đó mỗi từ cần được gán một nhãn: phân tích hình thái (mỗi từ được gán một phần của lời nói), trích xuất thực thể được đặt tên (xác định xem mỗi từ có phải là một phần của tên người, tên địa lý, v.v.) hay không. v.v... Khi phân loại trình tự, các phương pháp được sử dụng có tính đến ngữ cảnh của từ: nếu từ trước đó là một phần của tên người, thì từ hiện tại cũng có thể là một phần của tên, nhưng khó có thể là một phần của tên đó. Tên của tổ chức. Mạng lưới thần kinh tái diễn, mở rộng ý tưởng về các mô hình ngôn ngữ được đề xuất vào cuối thế kỷ trước, giúp thực hiện yêu cầu này trong thực tế. Mô hình ngôn ngữ cổ điển dự đoán xác suất từ ​​i sẽ xuất hiện sau từ i-1. Mô hình ngôn ngữ cũng có thể được sử dụng để dự đoán từ tiếp theo: từ nào có nhiều khả năng xuất hiện sau từ này nhất?

    Để huấn luyện các mô hình ngôn ngữ, cần có kho ngữ liệu lớn - kho ngữ liệu huấn luyện càng lớn thì mô hình “biết” càng nhiều cặp từ. Sử dụng mạng lưới thần kinh để phát triển mô hình ngôn ngữ giúp giảm lượng dữ liệu được lưu trữ. Hãy tưởng tượng một kiến ​​trúc mạng đơn giản trong đó các từ i-2 và i-1 là đầu vào và ở đầu ra, mạng nơ-ron dự đoán từ i. Tùy thuộc vào số lượng lớp ẩn và số lượng nơ-ron trên chúng, mạng được huấn luyện có thể được lưu trữ dưới dạng một số ma trận dày đặc có kích thước tương đối nhỏ. Nói cách khác, thay vì một kho dữ liệu huấn luyện và tất cả các cặp từ, nó chỉ có thể lưu trữ một vài ma trận và một danh sách các từ duy nhất. Tuy nhiên, mô hình ngôn ngữ thần kinh như vậy không cho phép tính đến các kết nối dài giữa các từ. Vấn đề này được giải quyết bằng các mạng thần kinh tái diễn (Hình 3), trong đó trạng thái bên trong của lớp ẩn không chỉ được cập nhật sau khi một từ mới đến đầu vào mà còn được chuyển sang bước tiếp theo. Do đó, lớp ẩn của mạng hồi quy chấp nhận hai loại đầu vào: trạng thái của lớp ẩn ở bước trước và từ mới. Nếu mạng nơ-ron hồi quy xử lý một câu thì trạng thái ẩn cho phép ghi nhớ và truyền đi các kết nối dài trong câu. Người ta đã nhiều lần xác minh bằng thực nghiệm rằng các mạng thần kinh tái phát ghi nhớ giới tính của chủ ngữ trong câu và chọn các đại từ chính xác (she - her, he - his) khi tạo câu, nhưng chỉ ra rõ ràng loại thông tin này được lưu trữ chính xác như thế nào trong mạng lưới thần kinh hoặc cách sử dụng nó vẫn chưa thành công.

    Mạng lưới thần kinh tái phát cũng được sử dụng để phân loại văn bản. Trong trường hợp này, đầu ra từ các bước trung gian không được sử dụng và đầu ra cuối cùng của mạng nơ-ron trả về lớp được dự đoán. Ngày nay, các mạng tái phát hai chiều (truyền trạng thái ẩn không chỉ “sang bên phải” mà còn “sang bên trái”) với hàng chục nơ-ron trên lớp ẩn đã trở thành một mạng lưới tái phát hai chiều. công cụ tiêu chuẩnđể giải quyết các vấn đề về phân loại văn bản và trình tự, cũng như tạo văn bản và về cơ bản thay thế các thuật toán khác.

    Sự phát triển của mạng nơ ron hồi quy đã trở thành kiến ​​trúc kiểu Seq2seq, bao gồm hai mạng hồi quy được kết nối, một trong số đó chịu trách nhiệm biểu diễn và phân tích đầu vào (ví dụ: một câu hỏi hoặc câu trong một ngôn ngữ) và mạng thứ hai để tạo ra đầu ra (một câu trả lời hoặc một câu bằng ngôn ngữ khác). Mạng Seq2seq làm nền tảng hệ thống hiện đại“câu hỏi-trả lời”, chương trình trò chuyện và hệ thống dịch máy.

    Ngoài các mạng thần kinh tích chập, cái gọi là bộ mã hóa tự động còn được sử dụng để phân tích văn bản, chẳng hạn như để tạo hiệu ứng trên hình ảnh trong Photoshop hoặc Instagram và đã tìm thấy ứng dụng trong ngôn ngữ học trong vấn đề giảm kích thước (tìm kiếm phép chiếu của một vectơ biểu diễn văn bản trên một không gian có chiều thấp hơn). Chiếu lên không gian hai chiều cho phép biểu diễn văn bản dưới dạng một điểm trên mặt phẳng và cho phép bạn mô tả trực quan một tập hợp văn bản dưới dạng một tập hợp các điểm, nghĩa là nó đóng vai trò như một phương tiện phân tích sơ bộ trước khi phân cụm hoặc phân loại văn bản. Khác với nhiệm vụ phân loại, nhiệm vụ giảm kích thước không có tiêu chí chất lượng rõ ràng nhưng hình ảnh thu được khi sử dụng bộ mã hóa tự động trông khá “thuyết phục”. Từ quan điểm toán học, bộ mã hóa tự động là một mạng thần kinh không giám sát, học hàm tuyến tính f(x) = x và bao gồm hai phần: bộ mã hóa và bộ giải mã. Bộ mã hóa là một mạng có nhiều lớp ẩn với số lượng nơ-ron giảm dần. Bộ giải mã là một mạng tương tự với số lượng nơ-ron ngày càng tăng. Chúng được kết nối bởi một lớp ẩn, có số lượng tế bào thần kinh nhiều nhất có thể nên có các chiều trong một không gian mới có chiều thấp hơn, và chính lớp này chịu trách nhiệm giảm chiều. Giống như mạng nơ ron tích chập, bộ mã hóa tự động không có bất kỳ cách diễn giải ngôn ngữ nào, vì vậy nó có thể được coi là một công cụ kỹ thuật hơn là một công cụ phân tích.

    Mặc dù có những kết quả ấn tượng nhưng mạng lưới thần kinh không thể được coi là một công cụ độc lập để phân tích văn bản (tìm kiếm các mẫu trong ngôn ngữ), càng không thể coi là một công cụ để hiểu văn bản. Đúng, mạng lưới thần kinh có thể tìm thấy các kết nối ẩn giữa các từ và khám phá các mẫu trong văn bản, nhưng cho đến khi những kết nối này được trình bày dưới dạng có thể hiểu được, mạng lưới thần kinh sẽ vẫn là các công cụ học máy khá tầm thường. Hơn nữa, trong công nghiệp giải pháp phân tích học sâu vẫn chưa có nhu cầu vì nó đòi hỏi chi phí không hợp lý cho việc chuẩn bị dữ liệu và không thể đoán trước được kết quả. Ngay cả trong cộng đồng nghiên cứu cũng có những lời chỉ trích về nỗ lực biến mạng lưới thần kinh trở thành một công cụ phổ quát. Vào năm 2015, Chris Manning, người đứng đầu nhóm ngôn ngữ học tính toán tại Stanford và chủ tịch ACL, đã phác thảo rõ ràng về khả năng ứng dụng của mạng lưới thần kinh. Trong đó, ông bao gồm các nhiệm vụ phân loại văn bản, phân loại trình tự và giảm kích thước. Tuy nhiên, nhờ tiếp thị và phổ biến học sâu, sự chú ý đến ngôn ngữ học tính toán và các ứng dụng mới của nó đã tăng lên.

    Văn học

    1. Tomas Mikolov và. al. Ước tính hiệu quả các cách biểu diễn từ trong không gian vectơ, arxiv.org. URL: http://arxiv.org/pdf/1301.3781.pdf
    2. Levy Omer, Yoav Goldberg, Ido Dagan. Cải thiện sự tương đồng về phân phối với các bài học rút ra từ việc nhúng từ. Giao dịch của Hiệp hội Ngôn ngữ học tính toán 3. - 2015. - P. 211–225. URL: https://www.transacl.org/ojs/index.php/tacl/article/view/570/124 (ngày truy cập: 18/05/2017).
    3. Pavel Velikhov. Học máy để hiểu ngôn ngữ tự nhiên // Open Systems.DBMS. - 2016. - Số 1. - P.18–21. URL: (ngày truy cập: 18/05/2017).
    4. Christopher Manning. Ngôn ngữ học tính toán và học sâu. Thuật ngữ máy tính. - 2016. URL: http://www.mitpressjournals.org/doi/full/10.1162/COLI_a_00239#.WQH8MBhh2qA (ngày truy cập: 18/05/2017).

    Dmitry Ilvovsky ([email được bảo vệ]) - nhân viên Phòng Thí nghiệm Quốc tế Hệ thống thông minh và phân tích cấu trúc, Ekaterina Chernyak ([email được bảo vệ]) - giáo viên tại Trung tâm Giáo dục thường xuyên, Khoa Khoa học Máy tính, Trường Đại học Nghiên cứu Quốc gia về Kinh tế (Moscow). Công trình được thực hiện trong khuôn khổ Chương trình nghiên cứu cơ bản của Trường Kinh tế Đại học Nghiên cứu Quốc gia.



    Từ bài viết bạn sẽ biết deep learning là gì. Bài viết cũng chứa nhiều tài nguyên mà bạn có thể sử dụng để thành thạo 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, deep learning đang được sử dụng ở mọi nơi. Các công ty đang chuyển sang 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 giỏi nhất thế giới. Ngoài cờ vây, máy móc còn đánh bại con người trong các trò chơi khác: cờ đam, cờ vua, đảo ngược và Jeopardy.

    Có thể chiến thắng ở trò chơi trên bàn cờ dường như không thể áp dụng được để giải các bài toán thực tế, nhưng điều này hoàn toàn không đúng. Cờ vây được thiết kế để trí tuệ nhân tạo không thể đánh bại được. Để làm được điều này, anh ấy cần phải học một điều quan trọng trong 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, nhiều vấn đề mà trước đây máy tính không thể tiếp cận được có thể giải quyết được.

    Rõ ràng, deep learning vẫn chưa hoàn hảo nhưng nó đã gần hữu ích về mặt thương mại. Ví dụ như 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 giới thiệu ô tô tự hành trên đường phố.

    Ford dự đoán tỷ lệ xe tự lái sẽ tăng đáng kể Phương tiện giao thôngđến năm 2021. Chính phủ Hoa Kỳ cũng đã cố gắng xây dựng 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 máy học, mạng lưới thần kinh 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á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 là học máy, và ngay trung tâm là mạng lưới thần kinh nhân tạo và học sâu.

    Nói một cách đại khái, deep learning đơn giản là một cái tên tiện lợi hơn cho mạng lưới thần kinh 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 lưới thần kinh, thường có thể khá hời hợt.

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

    Lớp đầu tiên của mạng nơ-ron được gọi là lớp đầu vào. Mỗi nút trong 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 đưa ra kết quả của mạng lưới thần kinh.

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

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

    Nếu coi machine learning như một nhánh hay một biến thể của trí tuệ nhân tạo thì deep learning là một loại hình chuyên biệt của nhánh đó.

    Học máy 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 chính xác của kết quả, sẽ điều chỉnh tiến trình của nó. Để quá trình này thành công, nhiều kỹ thuật, phần mềm đặc biệt và khoa học máy tính thường được sử dụng để mô tả phương pháp tĩnh và đại số tuyến tính.

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

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

    • Đào tạo kèm cặp
    • Học tập không giám sát

    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 khá nhiều sự can thiệp của con người, vì dữ liệu phải được lựa chọn thủ công. Tuy nhiên, nó rất hữu ích 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 tác động của tiền thưởng đến thời hạn hợp đồng của cấp dưới. Với 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 làm việc được chuẩn bị trước. Nó nhằm mục đích xác định 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 khách hàng theo hành vi. “Họ cũng chọn cái này” trên Amazon là một biến thể của nhiệm vụ liên kết.

    Mặc dù việc học có giám sát thường khá thuận tiện nhưng nó còn phức tạp hơn lựa chọn khó khăn vẫn tốt hơn. Học sâu đã chứng tỏ mình là 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 học sâu

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

    Đặc biệt, Facebook đã thành công trong việc nhận diện khuôn mặt trong ảnh bằng deep learning. Đây không phải là một cải tiến đơn giản về công nghệ mà là một bước ngoặt làm thay đổi mọi niềm tin trước đây: “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ó xuất 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 đó đ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 đã trải qua những thay đổi đáng kể. Nhóm nghiên cứu tại 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 có thể 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 lưới thần kinh 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ử, người ta coi tiếng Trung và tiếng Anh là hai ngôn ngữ hoàn toàn khác nhau. ngôn ngữ khác nhau, vì vậy mỗi người trong số họ yêu cầu một cách tiếp cận khác nhau,” Andrew Ng, người đứng đầu trung tâm nghiên cứu Baidu cho biết. “Các thuật toán học tập hiện nay đã được khái quát hóa đến mức bạn có thể Chỉ học hỏi."

    Google sử dụng deep learning để quản lý năng lượng trong 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à mức cải thiện khoảng 15% về hiệu quả năng lượng và tiết kiệm hàng triệu đô la.

    Dịch vụ vi mô học sâu

    Dưới đây là tổng quan nhanh về các dịch vụ liên quan đến deep learning.

    Trình gắn thẻ minh họa. Được cải tiến bởi Illustration2Vec, dịch vụ này cho phép bạn đánh dấu các hình ảnh với xếp hạng “được bảo vệ”, “có vấn đề”, “nguy hiểm”, “bản quyền” hoặc “chung” để hiểu trước nội dung của hình ảnh.

    • Tiện ích bổ sung Theano của Google
    • Có thể chỉnh sửa bằng Python và Numpy
    • Thường được sử dụng để giải quyết một loạt vấn đề cụ thể
    • Không phải mục đích chung. Tập trung vào thị giác máy
    • Đã chỉnh sửa bằng C++
    • Có một giao diện bằng 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 một khóa học miễn phí về học sâu, một phần của Khóa học máy học của Udacity. Chương trình này được dẫn dắt bởi các nhà phát triển giàu 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 Coursera và Stanford hỗ trợ.

    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 lưới thần kinh cho máy học – Geoffrey Hinton trên Coursera (2012)
    5. Lớp mạng lưới thần kinh– Hugo Larochelle từ Đại học Sherbrooke (2013)

    Sách về học sâu

    Trong khi các tài nguyên ở 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 nhắm đến người mới bắt đầu. Như các tác giả đã nói: “Nếu bạn đã học xong lớp 11 và hiểu sơ bộ về cách viết Python, chúng tôi sẽ dạy bạn học sâu”.

    Một lựa chọn thay thế phổ biến cho cuốn sách này là một cuốn sách có tựa đề dễ hiểu là Deep Learning Book. Nó đặc biệt tốt vì nó bao gồm tất cả các phép toán mà bạn cần để tiếp cận lĩnh vực này.

    1. "Học sâu" của Yoshua Bengio, Ian Goodfellow và Aaron Courville (2015)
    2. “Mạng lưới thần kinh và học sâu” của Michael Nielsen (2014)
    3. "Học sâu" từ Microsoft Research (2013)
    4. “Hướng dẫn học sâu” từ Phòng thí nghiệm LISA, Đại học Montreal (2015)
    5. “Thảo luận thần kinh” của Andrej Karpathy
    6. "Giới thiệu về thuật toán di truyền"
    7. “Cách tiếp cận hiện đại với trí tuệ nhân tạo”
    8. "Tổng quan về học sâu và mạng lưới 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ọ:

    "(Ấn phẩm Manning).

    Bài viết này dành cho những người đã có kinh nghiệm đáng kể về deep learning (ví dụ: những người đã đọc chương 1-8 của cuốn sách này). Giả sử có sẵn số lượng lớn kiến thức.

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

    Điều tuyệt vời nhất về deep learning là nó rất đơn giản. Mười năm trước, không ai có thể tưởng tượng được kết quả đáng kinh ngạc mà chúng ta sẽ đạt được trong các vấn đề về nhận thức của 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 độ dốc giảm dần. Bây giờ hóa ra tất cả những gì chúng ta cần là đủ lớn 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, chỉ có rất nhiều thứ».

    Trong học sâu, mọi thứ đều là một vectơ, nghĩa là dấu chấm V. không gian hình học. Dữ liệu đầu vào của mô hình (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ơ đích 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 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 từng điểm. Các tham số chuyển đổi được xác định bởi trọng số 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 tại thời điểm hiện tại. Tính năng chính biến đổi hình học - nó phải là gì có thể phân biệt được, nghĩa là chúng ta có thể tìm ra các tham số của nó thông qua việc giảm độ dốc. Theo trực giác, điều này có nghĩa là việc biến hình 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 cho dữ liệu đầu vào có thể được hiển thị dưới dạng 3D bằng cách mô tả một người đang cố gắng mở một quả bóng giấy: quả bóng giấy nhàu nát là nhiều loại 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 một 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 duy nhất. Trình tự hoàn chỉnh của các cử chỉ diễn ra là một sự biến đổi phức tạp của toàn bộ mô hình. Các mô hình học sâu là những cỗ máy toán học để làm sáng tỏ sự đa dạng phức tạp của dữ liệu đa chiều.

    Đó 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, rồi 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à một 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 Deep Learning

    Số lượng vấn đề có thể được giải quyết bằng chiến lược đơn giản này gần như là vô tận. Chưa hết, nhiều trong số chúng 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ả khi có sẵn lượng lớn dữ liệu được chú thích thủ công. Ví dụ: giả sử bạn có thể thu thập một tập dữ liệu gồm hàng trăm nghìn - thậm chí hàng triệu - mô tả chức năng bằng tiếng Anh phần mềm, do người quản lý sản phẩm viết, cũng như năm tham chiếu tương ứng do nhóm kỹ thuật phát triển để đáp ứng các yêu cầu này. Ngay cả với dữ liệu này, bạn không thể đào tạo một mô hình học sâu chỉ để đọc mô tả sản phẩm và tạo ra mô tả phù hợp. cơ sở mã. Đây chỉ là một trong nhiều ví dụ. Nói chung, bất cứ điều gì đòi hỏi lý 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 theo 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, bất kể bạn ném vào chúng bao nhiêu dữ liệu. Ngay cả việc đào tạo một mạng lưới thần kinh để thực hiện thuật toán sắp xếp cũng là một nhiệm vụ cực kỳ khó khăn.

    Nguyên nhân là do mô hình deep learning “chỉ” một chuỗi các phép biến đổi hình học đơn giản, liên tục, biến đổi một không gian vectơ thành một không gian vectơ khác. Tất cả những gì nó có thể làm là chuyển đổi một tập dữ liệu X thành một tập Y khác, với điều kiện là có thể học được một sự chuyển đổi liên tục từ X sang Y và có thể học được và tính sẵn có. tập hợp 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, 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 nhiệm vụ thực tế không có mạng lưới thần kinh sâu kích thước phù hợp, giải quyết vấn đề hoặc nếu nó tồn tại, nó có thể không thể dạy đượ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 phù hợp để huấn luyện nó.

    Việc 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ể biểu diễn và hầu hết các chương trình không thể được biểu diễn dưới dạng biến đổi hình học liên tục của các đa tạp dữ liệu.

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

    Một trong những rủi ro thực sự của AI hiện đại là hiểu sai cách hoạt động của các mô hình deep learning 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 vào những thứ xung quanh chúng ta. Hình vẽ khuôn mặt tươi cười trên đá bỗng khiến chúng ta “hạnh phúc” - về mặt tinh thần. Ví dụ, khi áp dụng vào học sâu, điều này có nghĩa là nếu chúng ta ít nhiều có thể đào tạo thành công một mô hình để tạo ra mô tả văn bản hình ảnh, thì chúng ta 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ả được tạo ra. Sau đó, chúng tôi vô cùng ngạc nhiên khi do có một sai lệch nhỏ so với tập hợp 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 được thể hiện rõ nhất trong “các ví dụ đối nghịch”, là các mẫu dữ liệu đầu vào của mạng học sâu được chọn cụ thể để phân loại sai. Bạn đã biết rằng bạn có thể thực hiện tăng dần độ dốc trên không gian dữ liệu đầu vào để tạo các mẫu giúp tối đa hóa việc kích hoạt, chẳng hạn như một bộ lọc mạng nơ-ron tích chập cụ thể - đâ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 ý: sách "Deep Learning with Python") , giống như thuật toán Deep Dream từ Chương 8. Theo cách tương tự, thông qua việc tăng độ dốc, bạn có thể thay đổi hình ảnh một chút để tối đa hóa khả năng dự đoán lớp cho một lớp nhất định. Nếu chúng ta chụp ảnh một con gấu trúc và thêm độ dốc "vượn", chúng ta có thể buộc mạng lưới thần kinh phân loại con gấu trúc đó là vượn. Điều này chứng tỏ cả sự mong manh của những mô hình này và sự khác biệt sâu sắc giữa quá trình 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.

    Nhìn chung, các mô hình deep learning không có khả năng hiểu biết về dữ liệu đầ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 vận động 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 vật chất trên trần thế. Các mô hình học máy không có quyền truy cập vào trải nghiệm như vậy và do đó không thể “hiểu” dữ liệu đầu vào của chúng ta theo bất kỳ cách nào giống con người. Bằng cách chú thích một số lượng lớn các ví dụ để đào tạo các mô hình của chúng tôi, chúng tôi buộc chúng phải học một phép biến đổi hình học nhằm chuyển đổi dữ liệu thành các khái niệm của con người đối với tập hợp các 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 về mô hình ban đầu trong tâm trí chúng ta, như được phát triển từ kinh nghiệm của chúng ta với tư cách là tác nhân cơ thể giống như một sự phản chiếu mờ nhạt trong gương.

    Là một người thực hành học máy, hãy luôn ghi nhớ điều này và đừng bao giờ rơi vào cái bẫy tin rằng mạng lưới thần kinh hiểu nhiệm vụ mà chúng đang thực hiện - í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, cụ thể hơn nhiều so với nhiệm vụ mà chúng tôi muốn đào tạo họ: chỉ cần chuyển các mô hình học tập đầu vào thành các mô hình học tập mục tiêu, từ điểm này sang điểm khác. Cho họ xem bất cứ điều gì khác với dữ liệu huấn luyện và họ sẽ phá vỡ theo những cách ngớ ngẩn nhất.

    Khái quát hóa cục bộ và khái quát hóa cực độ

    Dường như có những khác biệt cơ bản giữa sự 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 con người suy nghĩ và học hỏi. Không chỉ là mọi người tự học hỏi từ trải nghiệm cơ thể của họ chứ không phải thông qua việc xử lý một tập hợp các mẫu đào tạo. Ngoài những khác biệt trong quá trình học tập, còn có những khác biệt cơ bản về bản chất của niềm tin cơ bản.

    Con người có khả năng làm được nhiều việc hơn là chuyển một kích thích tức thời thành phản ứng tức thời, như mạng lưới thần kinh hoặc có lẽ là côn trùng. Mọi người giữ những mô hình phức tạp, trừu tượng trong tâm trí họ tình hình hiện tại, chính họ, những 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 khác nhau có thể xảy ra và thực hiện kế hoạch dài hạn. Họ có khả năng kết hợp các khái niệm đã biết để tưởng tượng ra đ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 chiếc quần jean, hoặc tưởng tượng những gì họ sẽ làm nếu trúng xổ 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 thực hiện sự 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à “sự khái quát hóa cuối cùng”: khả năng thích ứng với những tình huống mới, chưa từng có trước đây bằng cách sử dụng ít hoặc không có dữ liệu.

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

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

    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 deep learning 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, dựa trên một lượng lớn dữ liệu được chú thích của con người. Thực hiện tốt Thách thức này thể hiện một bước tiến mang tính cách mạng đối với toàn bộ ngành công nghiệp, 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à bắt đầu 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 thành đầu ra trực tiếp và chuyển sang lý luậnsự trừu tượng. Các chương trình máy tính có thể là cơ sở phù hợp để mô hình hóa các tình huống và khái niệm khác nhau một cách trừu tượng. Chúng tôi đã nói trước đây (lưu ý: trong Deep Learning with Python) rằng các mô hình học máy có thể được định nghĩa là "các chương trình học"; 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ể huấn luyện từng chương trình theo mô-đun và lặp lại? Hãy xem làm thế nào chúng ta có thể đến đó.

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

    Với những gì chúng ta biết về mạng lưới học sâu, những hạn chế của chúng và tình trạng nghiên cứu hiện tại, liệu chúng ta có thể dự đoán điều gì sẽ xảy ra trong trung hạn không? Dưới đâ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 hoàn toàn là suy đoán. Tôi chia sẻ những dự đoán này không phải vì tôi kỳ vọng chúng sẽ được hiện thực hóa hoàn toàn trong tương lai mà vì chúng thú vị và có thể áp dụng được cho hiện tại.

    Ở cấp độ cao, đây là những lĩnh vực chính mà tôi cho là có triển vọng:

    • 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 trên nền tảng nguyên thủy phong phú hơn nhiều so với các lớp vi phân hiện tại của chúng ta - vì vậy chúng ta sẽ nhận được lý luậnsự trừu tượng, sự vắng mặt của nó là điểm yếu cơ bản của các mô hình hiện tại.
    • Các hình thức học tập mới sẽ xuất hiện để biến điều này thành hiện thực - và cho phép các mô hình thoát khỏi những biến đổi đơn giản có thể khác biệt.
    • Các mô hình sẽ yêu cầu ít đầu vào của nhà phát triển hơn - công việc của bạn không phải là liên tục vặn các nút bấm.
    • Sẽ có sự tái sử dụng có hệ thống và lớn hơn 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 thói quen mô-đun và có thể tái sử dụng.
    Ngoài ra, hãy lưu ý rằng những cân nhắc này không áp dụng riêng cho học có giám sát, vốn vẫn là nền tảng của học máy—chúng cũng áp dụng cho bất kỳ hình thức học máy nào, bao gồm học không giám sát, học có giám sát và học tăng cường. Về cơ bản, việc nhãn của bạn đến từ đâu hoặc chu trình học tập của bạn trông như thế nào không quan trọng; các nhánh khác nhau của học máy này chỉ đơn giản 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 đó, sự phát triển chuyển đổi cần thiết có thể được mong đợi trong lĩnh vực học máy là loại bỏ các mô hình hoạt động thuần túy. nhận dạng mẫu và chỉ có khả năng khái quát hóa cục bộ, đến các mô hình có khả năng sự trừu tượnglý luận có thể đạt được khái quát hóa cuối cùng. Tất cả các chương trình AI hiện tại với khả năng suy 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 AlphaGo của DeepMind, phần lớn "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 cây Monte Carlo); Việc học từ dữ liệu mới chỉ diễn 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, những hệ thống AI như vậy có thể được đào tạo hoàn toàn 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 lấy một loại mạng nổi tiếng: RNN. Điều quan trọng là RNN có ít hạn chế hơn một chút so với mạng nơ-ron tiếp liệu. Điều này là do RNN không chỉ là những phép biến đổi hình học đơn giản: chúng là những phép biến đổi hình học được thực hiện liên tục trong vòng lặp for. Thời gian của vòng lặp for được nhà phát triển chỉ định: đó là giả định có sẵn của mạng. Đương nhiên, RNN vẫn bị hạn chế về những gì chúng có thể biểu diễn, chủ yếu là vì mỗi bước chúng thực hiện vẫn là một phép biến đổi hình học có thể vi phân và do cách chúng truyền tải thông tin từng bước qua các điểm trong một 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 lưới thần kinh sẽ được “tăng lên” bằng cách lập trình nguyên thủy theo cách tương tự như các vòng lặp for - nhưng không chỉ là một vòng lặp for được mã hóa cứng duy nhất với bộ nhớ hình học được khâu, mà còn bộ lớn lập trình nguyên thủy mà mô hình có thể tự do truy cập để mở rộng khả năng xử lý của nó, chẳng hạn như các 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à nhiều hơn thế nữa. Không gian của các chương trình mà một mạng như vậy có thể đại diện sẽ rộng hơn nhiều so với những gì có thể thể hiện được. mạng hiện có học sâu và một số chương trình này có thể đạt được khả năng khái quát hóa vượt trội.

    Nói tóm lại, chúng ta sẽ tránh xa thực tế là 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í tuệ hình học được đào tạo” (học sâu). Thay vào đó, chúng ta sẽ kết thúc bằng một hỗn hợp các mô-đun thuật toán hình thức cung cấp khả năng lý luậnsự trừu tượng và các mô-đun hình học cung cấp khả năng 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ự can thiệp của con người.

    Một lĩnh vực liên quan đến AI mà tôi nghĩ có thể sớm đạt được những bước tiến lớn là tổng hợp phần mềm, đặc biệt là tổng hợp phần mềm thần kinh. Tổng hợp phần mềm bao gồm thế hệ tự động các chương trình đơn giản, sử dụng 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á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 bắt buộc, 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ặ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 khái quát hóa thành đầu vào mới. Sự khác biệt là thay vì huấn luyện các giá trị tham số trong một chương trình được mã hóa cứng (mạng nơron), chúng ta tạo ra nguồn thông qua rời rạc quá trình tìm kiếm.

    Tôi chắc chắn mong đợi sẽ có nhiều người quan tâm đến lĩnh vực này trong vài năm tới. Đặc biệt, tôi kỳ vọng sự thâm nhập lẫn nhau của các lĩnh vực liên quan đến học sâu và tổng hợp phần mềm, nơi chúng ta 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à còn tạo ra các mạng thần kinh (luồng xử lý dữ liệu hình học), bổ sung một tập hợp phong phú các thuật toán nguyên thủy, chẳng hạn như vòng lặp for - và nhiều vòng lặp 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ể giải quyết bằ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 phù hợp. Sự kết hợp giữa AI biểu tượ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.


    Vẽ: Chương trình được đào tạo đồng thời dựa trên các nguyên hàm hình học (nhận dạng mẫu, trực giác) và các nguyên hàm thuật toán (đối số, tìm kiếm, bộ nhớ).

    Ngoài lan truyền ngược và các lớp khác biệt

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

    Ngoài ra, lan truyền ngược có khung từ đầu đến cuối, phù hợp để học các phép biến đổi nố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 triệt để tính mô đun của mạng sâu. Để tăng hiệu quả của bất cứ điều gì, có một công thức chung: giới thiệu tính mô-đun và phân cấp. Vì vậy, chúng ta có thể làm cho 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ố 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 nghiên cứu gần đây của DeepMind về “gradient tổng hợp”. Tôi mong đợi rất nhiều làm việc nhiều hơn theo hướng này trong thời gian tới.

    Người ta có thể tưởng tượng một tương lai trong đó các mô hình không thể phân biệt được trên toàn cầu (nhưng với các phần có thể phân biệt) sẽ học - phát triển - bằng cách sử dụng quy trình tìm kiếm hiệu quả không áp dụng độ dốc, 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 độ dốc bằng cách sử dụng nhiều hơn nữa phiên bản hiệu quả Lan truyền ngược

    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 học hỏi chứ không phải do các kỹ sư viết bằng tay. Các mô hình kết quả được tự động ghép nối với một tập hợp các mô hình học máy nguyên thủy và giống như chương trình phong phú hơn.

    Ngày nay, hầu hết thời gian, nhà phát triển hệ thống deep learning 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 deep learning để 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 đầy tham vọng. Không cần phải nói, đây không phải là điều tốt nhất Vị trí tốt hơn của sự vật. Nhưng AI cũng có thể giúp ích ở đây. Thật không may, phần xử lý và chuẩn bị dữ liệu khó tự động hóa vì nó thường đòi hỏi kiến ​​thức về miền cũng như sự 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 quy trình 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 thần kinh cần được điều chỉnh. Giờ đây, việc cài đặt các hệ thống AutoML cơ bản đã trở nên phổ biến, hệ thống này đảm nhiệm hầu hết việc điều chỉnh cài đặt mô hình. Tôi đã tự cài đặt một cái để giành chiến thắng trong cuộc thi Kaggle.

    Ở cấp độ cơ bản nhất, một hệ thống như vậy sẽ chỉ đ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. Việc 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 ý: sách "Học sâu với 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. Ví dụ, điều này có thể thực hiện được bằng cách sử dụng học tăng cường hoặc sử dụng thuật toán di truyền.

    Một hướng quan trọng khác trong việc phát triển AutoML là đào tạo kiến ​​trúc mô hình đồng thời với trọng số mô hình. Bằng cách đào tạo một mô hình từ đầu mỗi lần 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 thực sự hệ thống mạnh mẽ AutoML sẽ thúc đẩy sự phát triển của kiến ​​trúc trong khi các thuộc tính mô hình được điều chỉnh thông qua lan truyền ngược tới dữ liệu huấn luyện, do đó loại bỏ mọi chi phí tính toán. Khi tôi viết những dòng này, những cách tiếp cận 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ệ thống máy học sẽ không còn việc làm nữa - họ sẽ chuyển sang nhiều công việc khác cấp độ cao trong chuỗi giá trị. Họ sẽ bắt đầu nỗ lực nhiều hơn nữa để tạo ra các hàm tổn thất phức tạp phản ánh chân thực các vấn đề kinh doanh và sẽ phát triển sự hiểu biết sâu sắc về cách các mô hình của họ tác động đến hệ sinh thái kỹ thuật số nơi họ vận hành (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 của nó) - những vấn đề mà hiện nay chỉ những công ty lớn nhất mới có đủ khả năng để xem xét.

    Học tập suốt đời và tái sử dụng các thói quen 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 thuật toán nguyên thủy phong phú hơn thì độ phức tạp tăng lên này sẽ yêu cầu tái sử dụng nhiều hơn giữa các tác vụ, thay vì đào tạo mô hình từ đầu mỗi khi chúng ta có tác 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à việc sử dụng thông tin từ các bộ dữ liệu trước đó sẽ trở nên cần thiết. Bạn không học lại tiếng anh mỗi khi bạn mở nó sách mới- điều đó là không thể được. Ngoài ra, các mô hình đào tạo từ đầu cho từng vấn đề mới rất kém hiệu quả do có sự chồng chéo đáng kể giữa các vấn đề hiện tại và những vấn đề gặp phải trước đây.

    Ngoài ra, một quan sát đáng chú ý đã được đưa ra nhiều lần trong những năm gần đây rằng việc đào tạo cùng một mô hình để làm có phần yếu kém. Nhiệm vụ liên quan 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 lưới thần kinh để dịch từ tiếng Anh sang tiếng Đức và từ tiếng Pháp sang tiếng Ý sẽ mang lại một mô hình tốt hơn cho từng cặp ngôn ngữ này. Huấn luyện mô hình phân loại hình ảnh đồng thời với mô hình phân đoạn hình ảnh, với một cơ sở tích chập duy nhất, sẽ mang lại một mô hình tốt hơn ở cả hai nhiệm vụ. Và như thế. Điều này khá trực quan: luôn có một số loại thông tin trùng lặp 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ự làm khi sử 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 chung, như trích xuất đặc điểm hình ảnh. Bạn đã thấy điều này trong thực tế ở Chương 5. Tôi hy vọng rằng phiên bản tổng quát hơn của kỹ thuật này sẽ được sử dụng phổ biến trong tương lai: chúng ta sẽ không chỉ sử dụng các tính năng đã học trước đó (trọng số của mô hình con) mà còn sử dụng cả kiến ​​trúc mô hình và quy trình huấn luyện. Khi các mô hình trở nên giống chương trình hơn, chúng ta sẽ bắt đầu sử dụng lại chương trình con, 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ĩ xem quy trình phát triển phần mềm ngày nay trông như thế nào: khi một kỹ sư giải quyết một vấn đề nhất định (ví dụ: các yêu cầu HTTP trong Python), anh ta sẽ đóng gói nó thành một thư viện trừu tượng để tái sử dụng. Các kỹ sư gặp phải vấn đề tương tự trong tương lai chỉ cần tìm kiế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ọ. Tương tự như vậy, trong tương lai, các hệ thống siêu học tập sẽ có thể tập hợp các chương trình mới bằng cách sàng lọc 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ố nhiệm 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 chung. Quá trình này sẽ mở ra cơ hội cho sự trừu tượng, một thành phần cần thiết để đạt được "sự khái quát hóa cuối cùng": một quy trình sẽ 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 thư viện mà các lập trình viên hiện đại làm việc cùng).

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

    Kết quả: một tầm nhìn dài hạn

    Nói tóm lại, đây là tầm nhìn dài hạn của tôi đối với việc 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 nguồn 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 hơn nhiều với các mô hình tinh thần trừu tượng mà mọi người nắm giữ về môi trường và bản thân họ, đồng thời chúng sẽ có khả năng khái quát hóa mạnh mẽ hơn do tính chất thuật toán của chúng.
    • Đặc biệt, các mô hình sẽ kết hợp module thuật toán với khả năng suy luận hình thức, tìm kiếm, 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 kiến ​​trúc và lập trình thủ công chuyên sâu) cung cấp một ví dụ ban đầu về việc hợp nhất AI biểu tượng và hình học có thể trông như thế nào.
    • Họ sẽ phát triển tự động (thay vì được viết bằng tay bởi các lập trình viên con người), sử dụng các bộ phận mô-đun từ thư viện toàn cầu gồm các quy trình 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 vấn đề và tập dữ liệu trước đó. Khi hệ thống metalearning đã xác định được các mẫu giải quyết vấn đề phổ biến, chúng sẽ được chuyển đổi thành các quy trình có thể sử dụng lại - 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 đạt được khả năng sự trừu tượng.
    • Một thư viện toàn cầu và hệ thống phát triển mô hình liên quan sẽ có thể đạt được một số dạng "khái quát hóa cuối cùng" giống như con người: khi đố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ể tập hợp một mô hình làm việc mới cho nhiệm vụ đó bằng cách sử dụng rất ít dữ liệu, nhờ vào: 1) những người nguyên thủy giống như chương trình phong phú, có khả năng khái quát tốt và 2) kinh nghiệm sâu rộng trong việc giải quyết các vấn đề tương tự. Theo cách tương tự, mọi người có thể nhanh chóng học một trò chơi điện tử phức tạp mới vì họ đã có kinh nghiệm trước đó với nhiều trò chơi khác và vì các mô hình từ trải nghiệm trước đó rất trừu tượng và giống như chương trình thay vì chỉ đơn giản 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à Mạnh mẽ. Trí tuệ nhân tạo. Nhưng đừng mong đợi một ngày tận thế robot đơn lẻ nào đó sẽ xảy ra: đó chỉ là tưởng tượng thuần túy, 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 có chỗ ở đây.