Giới thiệu về học sâu. Lý thuyết mới tiết lộ bí mật về cách thức hoạt động của mạng lưới thần kinh

Ngày nay, biểu đồ là một trong những cách được chấp nhận nhất để mô tả các mô hình được tạo trong hệ thống máy học. Các đồ thị tính toán này bao gồm các đỉnh nơ-ron được kết nối bằng các cạnh khớp thần kinh mô tả các kết nối giữa các đỉnh.

Không giống như GPU trung tâm hoặc GPU vô hướng, IPU kiểu mới bộ xử lý được thiết kế cho máy học cho phép bạn xây dựng các biểu đồ như vậy. Một máy tính được thiết kế để quản lý đồ thị - chiếc xe hoàn hảo cho các mô hình đồ thị tính toán được tạo trong học máy.

Một trong những điều nhất những cách đơn giản Cách để mô tả quá trình trí tuệ của máy móc là hình dung nó. Nhóm phát triển Graphcore đã tạo ra một bộ sưu tập các hình ảnh như vậy được hiển thị trên IPU. Nó dựa trên phần mềm Poplar, trực quan hóa công việc trí tuệ nhân tạo. Các nhà nghiên cứu của công ty này cũng đã tìm ra lý do tại sao mạng lưới sâuđòi hỏi rất nhiều bộ nhớ và có những cách nào để giải quyết vấn đề.

Poplar bao gồm một trình biên dịch đồ họa được xây dựng từ đầu để dịch các hoạt động học máy tiêu chuẩn thành mã ứng dụng IPU được tối ưu hóa cao. Nó cho phép bạn tập hợp các biểu đồ này lại với nhau bằng cách sử dụng nguyên tắc tương tự như POPNN được tập hợp. Thư viện chứa một bộ nhiều loại khác nhau các đỉnh cho nguyên thủy tổng quát.

Đồ thị là mô hình mà tất cả phần mềm đều dựa vào. Trong Poplar, đồ thị cho phép bạn xác định quy trình tính toán, trong đó các đỉnh thực hiện các phép toán và các cạnh mô tả mối quan hệ giữa chúng. Ví dụ: nếu bạn muốn cộng hai số với nhau, bạn có thể xác định một đỉnh có hai đầu vào (các số bạn muốn cộng), một số phép tính (một hàm để cộng hai số) và một đầu ra (kết quả).

Thông thường, các thao tác với các đỉnh phức tạp hơn nhiều so với ví dụ được mô tả ở trên. Họ thường quyết tâm chương trình nhỏ, được gọi là codelets (tên mã). Sự trừu tượng hóa bằng đồ họa rất hấp dẫn vì nó không đưa ra giả định nào về cấu trúc tính toán và chia tính toán thành các thành phần mà IPU có thể sử dụng để vận hành.

Poplar sử dụng sự trừu tượng hóa đơn giản này để xây dựng các biểu đồ rất lớn được biểu diễn dưới dạng hình ảnh. Việc tạo biểu đồ bằng phần mềm có nghĩa là chúng tôi có thể điều chỉnh nó theo các tính toán cụ thể cần thiết để đảm bảo hiệu quả nhất sử dụng hiệu quả tài nguyên IPU

Trình biên dịch dịch hoạt động tiêu chuẩn, được sử dụng trong các hệ thống máy học, thành mã ứng dụng IPU được tối ưu hóa cao. Trình biên dịch biểu đồ tạo ra hình ảnh trung gian của biểu đồ tính toán, được triển khai trên một hoặc nhiều thiết bị IPU. Trình biên dịch có thể hiển thị biểu đồ tính toán này, do đó, một ứng dụng được viết ở cấp khung mạng thần kinh sẽ hiển thị hình ảnh của biểu đồ tính toán đang chạy trên IPU.


Biểu đồ của chu trình đào tạo AlexNet đầy đủ theo hướng tiến và lùi

Trình biên dịch đồ họa Poplar đã biến mô tả AlexNet thành một biểu đồ tính toán gồm 18,7 triệu đỉnh và 115,8 triệu cạnh. Phân cụm có thể nhìn thấy rõ ràng là kết quả của sự kết nối mạnh mẽ giữa các tiến trình trong mỗi lớp của mạng với nhiều giao tiếp dễ dàng giữa các cấp độ.

Một ví dụ khác là một mạng đơn giản được kết nối đầy đủ được huấn luyện trên MNIST, một tập dữ liệu đơn giản cho tầm nhìn máy tính, một kiểu “Xin chào thế giới” trong học máy. Một mạng đơn giản để khám phá tập dữ liệu này sẽ giúp hiểu được các biểu đồ được điều khiển bởi các ứng dụng Poplar. Bằng cách tích hợp các thư viện biểu đồ với các khung như TensorFlow, công ty cung cấp một trong những những cách đơn giảnđể sử dụng IPU trong các ứng dụng học máy.

Sau khi biểu đồ được xây dựng bằng trình biên dịch, nó cần được thực thi. Điều này có thể thực hiện được bằng cách sử dụng Graph Engine. Ví dụ về ResNet-50 thể hiện hoạt động của nó.


Đồ thị ResNet-50

Kiến trúc ResNet-50 cho phép tạo các mạng sâu từ các phân vùng lặp lại. Bộ xử lý chỉ phải xác định các phần này một lần và gọi lại chúng. Ví dụ: cụm cấp độ đối lưu 4 được thực thi sáu lần nhưng chỉ được ánh xạ một lần vào biểu đồ. Hình ảnh cũng thể hiện sự đa dạng về hình dạng của các lớp chập, vì mỗi lớp có một biểu đồ được xây dựng theo một dạng tính toán tự nhiên.

Công cụ tạo và quản lý việc thực thi mô hình học máy bằng cách sử dụng biểu đồ do trình biên dịch tạo ra. Sau khi được triển khai, Graph Engine sẽ giám sát và phản hồi các IPU hoặc thiết bị được ứng dụng sử dụng.

Hình ảnh ResNet-50 hiển thị toàn bộ mô hình. Ở cấp độ này, rất khó để xác định các kết nối giữa các đỉnh riêng lẻ, vì vậy cần xem xét các hình ảnh phóng to. Dưới đây là một số ví dụ về các phần trong các lớp mạng thần kinh.

Tại sao mạng sâu cần nhiều bộ nhớ đến vậy?

Một lượng lớn bộ nhớ bị chiếm dụng là một trong những vấn đề lớn nhất vấn đề lớn mạng lưới thần kinh sâu. Các nhà nghiên cứu đang cố gắng giải quyết những hạn chế thông lượng Các thiết bị DRAM nên được sử dụng hệ thống hiện đạiđể lưu trữ một số lượng lớn trọng lượng và kích hoạt trong mạng lưới thần kinh sâu.

Các kiến ​​trúc được thiết kế bằng cách sử dụng các chip xử lý được thiết kế để xử lý tuần tự và tối ưu hóa DRAM cho bộ nhớ mật độ cao. Giao diện giữa hai thiết bị này là một nút thắt cổ chai gây ra các hạn chế về băng thông và tăng thêm chi phí tiêu thụ điện năng đáng kể.

Mặc dù chúng ta chưa có sự hiểu biết đầy đủ về bộ não con người và cách thức hoạt động của nó nhưng nhìn chung người ta hiểu rằng không có kho lưu trữ bộ nhớ riêng biệt lớn. Chức năng của trí nhớ dài hạn và ngắn hạn trong não người được cho là gắn liền với cấu trúc của tế bào thần kinh + khớp thần kinh. Ngay cả những sinh vật đơn giản như giun, với cấu trúc não thần kinh chỉ hơn 300 tế bào thần kinh, cũng có chức năng ghi nhớ ở một mức độ nào đó.

Xây dựng bộ nhớ trong bộ xử lý thông thường là một cách để khắc phục vấn đề tắc nghẽn bộ nhớ, mở khóa băng thông khổng lồ với mức tiêu thụ điện năng thấp hơn nhiều. Tuy nhiên, bộ nhớ trên chip đắt tiền và không được thiết kế cho lượng bộ nhớ thực sự lớn được gắn vào CPU và GPU hiện đang được sử dụng để đào tạo và triển khai mạng lưới thần kinh sâu.

Vì vậy, thật hữu ích khi xem xét cách sử dụng bộ nhớ trong CPU và hệ thống ngày nay học kĩ càng trên các bộ tăng tốc đồ họa và tự hỏi: tại sao chúng lại yêu cầu các thiết bị lưu trữ bộ nhớ lớn như vậy khi bộ não con người vẫn hoạt động tốt khi không có chúng?

Mạng thần kinh cần bộ nhớ để lưu trữ dữ liệu đầu vào, trọng số và các hàm kích hoạt khi đầu vào truyền qua mạng. Trong quá trình học, việc kích hoạt đầu vào phải được duy trì cho đến khi nó có thể được sử dụng để tính toán các lỗi của gradient đầu ra.

Ví dụ: mạng ResNet 50 lớp có khoảng 26 triệu tham số trọng lượng và tính toán 16 triệu lần kích hoạt chuyển tiếp. Nếu bạn sử dụng float 32 bit để lưu trữ từng trọng lượng và kích hoạt, nó sẽ cần khoảng 168 MB dung lượng. Sử dụng nhiều hơn giá trị thấpđể lưu trữ các trọng lượng và kích hoạt này, chúng tôi có thể giảm một nửa hoặc thậm chí tăng gấp bốn lần yêu cầu lưu trữ này.

Một vấn đề lớn về bộ nhớ phát sinh từ việc GPU dựa vào dữ liệu được biểu diễn dưới dạng vectơ dày đặc. Vì vậy, họ có thể sử dụng Luồng lệnh đơn (SIMD) để đạt được mật độ cao tính toán. CPU sử dụng các đơn vị vectơ tương tự để tính toán hiệu năng cao.

GPU có độ rộng synap là 1024 bit nên sử dụng dữ liệu dấu phẩy động 32 bit nên thường chia thành từng đợt nhỏ 32 mẫu song song để tạo vectơ dữ liệu 1024 bit. Cách tiếp cận song song vectơ này làm tăng số lần kích hoạt lên 32 lần và nhu cầu lưu trữ cục bộ có dung lượng hơn 2 GB.

GPU và các máy khác được thiết kế cho đại số ma trận cũng phải chịu tải bộ nhớ do trọng lượng hoặc kích hoạt mạng thần kinh. GPU không thể thực hiện hiệu quả các phép tích chập nhỏ được sử dụng trong mạng lưới thần kinh sâu. Do đó, một phép biến đổi được gọi là "rút gọn" được sử dụng để chuyển đổi các phép tích chập này thành phép nhân ma trận-ma trận (GEMM), mà GPU có thể xử lý hiệu quả.

Bộ nhớ bổ sung cũng được yêu cầu để lưu trữ dữ liệu đầu vào, giá trị tạm thời và hướng dẫn chương trình. Đo mức sử dụng bộ nhớ trong khi đào tạo ResNet-50 trên HPC GPU cho thấy rằng nó yêu cầu hơn 7,5 GB DRAM cục bộ.

Một số người có thể nghĩ rằng độ chính xác tính toán thấp hơn có thể làm giảm lượng bộ nhớ cần thiết, nhưng thực tế không phải vậy. Bằng cách chuyển đổi các giá trị dữ liệu sang độ chính xác một nửa cho trọng số và kích hoạt, bạn sẽ chỉ lấp đầy một nửa chiều rộng vectơ SIMD, lãng phí một nửa tài nguyên máy tính hiện có. Để bù đắp cho điều này, khi bạn chuyển từ độ chính xác hoàn toàn sang độ chính xác một nửa trên GPU, bạn sẽ phải tăng gấp đôi kích thước của lô nhỏ để buộc đủ dữ liệu song song để sử dụng tất cả tính toán có sẵn. Do đó, việc chuyển sang trọng lượng và kích hoạt có độ chính xác thấp hơn trên GPU vẫn cần hơn 7,5 GB bộ nhớ động truy cập miễn phí.

Với ví dụ một lượng lớn dữ liệu cần được lưu trữ thì đơn giản là không thể đưa tất cả dữ liệu đó vào GPU. Mỗi lớp mạng thần kinh tích chập cần lưu trữ trạng thái của DRAM bên ngoài, tải lớp mạng tiếp theo và sau đó tải dữ liệu vào hệ thống. Kết quả là giao diện đã bị giới hạn bởi băng thông và độ trễ bộ nhớ. bộ nhớ ngoài chịu thêm gánh nặng khởi động lại liên tục trọng lượng, lưu trữ và truy xuất các hàm kích hoạt. Điều này làm chậm đáng kể thời gian đào tạo và tăng đáng kể mức tiêu thụ điện năng.

Có một số cách để giải quyết vấn đề này. Đầu tiên, các hoạt động như chức năng kích hoạt có thể được thực hiện “tại chỗ”, cho phép dữ liệu đầu vào được ghi lại trực tiếp vào đầu ra. Như vậy, bộ nhớ hiện có có thể được tái sử dụng. Thứ hai, cơ hội cho tái sử dụng bộ nhớ có thể thu được bằng cách phân tích sự phụ thuộc dữ liệu giữa các hoạt động trên mạng và việc phân bổ cùng một bộ nhớ cho các hoạt động không sử dụng nó tại thời điểm đó.

Cách tiếp cận thứ hai đặc biệt hiệu quả khi toàn bộ mạng lưới thần kinh có thể được phân tích tại thời điểm biên dịch để tạo ra bộ nhớ được phân bổ cố định, do chi phí quản lý bộ nhớ giảm xuống gần như bằng không. Hóa ra, sự kết hợp của các phương pháp này có thể giảm mức sử dụng bộ nhớ của mạng thần kinh từ hai đến ba lần.
Cách tiếp cận quan trọng thứ ba gần đây đã được nhóm Baidu Deep Speech phát hiện. Họ đã áp dụng nhiều kỹ thuật tiết kiệm bộ nhớ khác nhau để giảm 16 lần mức tiêu thụ bộ nhớ của các chức năng kích hoạt, cho phép họ huấn luyện mạng với 100 lớp. Trước đây, với cùng dung lượng bộ nhớ, họ có thể huấn luyện các mạng có chín lớp.

Việc kết hợp các tài nguyên bộ nhớ và xử lý vào một thiết bị duy nhất có tiềm năng đáng kể để cải thiện hiệu suất và hiệu quả của mạng nơ-ron tích chập, cũng như các hình thức học máy khác. Có thể thực hiện sự cân bằng giữa bộ nhớ và tài nguyên điện toán để đạt được sự cân bằng giữa các tính năng và hiệu suất trong hệ thống.

Mạng lưới thần kinh và mô hình tri thức trong các phương pháp học máy khác có thể được coi là đồ thị toán học. Những đồ thị này chứa số lượng lớn sự song song. Bộ xử lý song song được thiết kế để khai thác tính song song trong biểu đồ không dựa vào lô nhỏ và có thể giảm đáng kể dung lượng lưu trữ cục bộ cần thiết.

Kết quả nghiên cứu hiện tại đã chỉ ra rằng tất cả các phương pháp này có thể cải thiện đáng kể hiệu suất của mạng lưới thần kinh. GPU và CPU hiện đại có bộ nhớ trong rất hạn chế, tổng cộng chỉ có vài megabyte. Kiến trúc bộ xử lý mới được thiết kế đặc biệt cho bộ nhớ cân bằng máy học và điện toán trên chip, mang lại những cải tiến đáng kể về hiệu suất và hiệu quả so với các công nghệ hiện tại. bộ xử lý trung tâm và bộ tăng tốc đồ họa.

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 thực hiện phép biến đổi vectơ tín hiệu đầu vào(tác động) X vào vectơ đầ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 để đi đến cấp độ tiếp theo hiểu 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 tế.

TRONG trường hợp chung, huấn luyện 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.

Như thế đấy 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 nhiều cấp độ. mạng lưới thần kinh. 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 được 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 hầu hết 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 đáng kể 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à tất cả các phương pháp tiếp cận đang phát triển liên quan đến chúng đều 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.

Tôi đã tìm hiểu về xu hướng kinh doanh tại một hội nghị quy mô lớn ở Kiev. Ngày thứ Bảy tràn ngập những hiểu biết sâu sắc, trong đó chúng tôi có được những kiến ​​thức và mối quen biết mới sau thời gian bỏ ra. Tại hội nghị có 4 luồng thông tin dành cho lãnh đạo doanh nghiệp, quản lý cấp cao, nhà tiếp thị, bộ phận bán hàng, nhân sự 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 Galuzia, việc cải tạo đường sá và sân bay.

Chúc tất cả những người dùng iOS thân mến một ngày tốt lành, có lẽ mỗi người trong số các bạn đều đã từng làm việc với mạng và phân tích dữ liệu 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ố phức tạp và một số đơn giản. Thành thật mà nói, bản thân tôi đã phân tích cú pháp JSON bằng tay trong một thời gian rất dài, không tin tưởng quy trình này vào một số thư viện 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 của riêng mình thanh toán di động- Trả phí cho apple.

Bằng cách sử dụng hệ thống thanh toán Trả phí cho apple người dùng iPhone 6 và iPhone 6+, cũng như chủ sở hữu của phiên bản mới nhất Phiên bản AppleĐồng hồ có thể mua hàng trực tuyến, sử dụng lợi ích kèm theo Trả phí cho appleứ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). Dùng để ủy quyền thanh toán Công nghệ cảm ứng ID hoặc Face ID.

Công nghệ không đứng yên và các quá trình phát triển cũng chuyển động theo chúng. Nếu trước đây các công ty làm việc theo mô hình “Thác nước” thì bây giờ, mọi người đều nỗ lực triển khai “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 chất lượng cao trong phạm vi ngân sách và dừng lại ở đó, nhưng giờ đây họ 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 chuyên môn của họ.

Trong vài năm qua, rất nhiều phông chữ đẹp đã 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 mình 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 mà họ đã quen làm việc và điều đó phản ánh chúng. phong cách đồ họa. Các nhà thiết kế nói, “Bạn không bao giờ có thể có quá nhiều phông chữ đẹp,” nhưng bây giờ bạn có thể tưởng tượng một cách an toàn tình huống trong đó bộ này chỉ bao gồm các phông chữ miễn phí.

Tần suất các nhà quản lý dự án thấy mình đang ở 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 cũng như sức khỏe tinh thần của toàn nhóm? Cần phải tính đến bao nhiêu sắc thái để có được hòa bình và trật tự cho cả hai bên trách nhiệm? Làm thế nào để bạn biết liệu bạn có phải là một người quản lý giỏi hay bạn đang cần cải thiện gấp về mọi mặt? Làm thế nào để xác định chính xác những khía cạnh nào mà bạn, với tư cách là một PM, đang tụt lại phía sau và bạn giỏi và thông minh ở điểm nào? Đâ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 mẫu đang ngày càng trở thành một phầ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ó để giải quyết hầu hết các vấn đề nhiệm vụ khác nhau: 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 sản phẩm dựa trên Chức năng này, hứa hẹn sẽ tăng lên 39 tỷ USD vào năm 2021. Đây chỉ là một vài ví dụ về cách sử dụng nhận dạng mẫu trong các lĩnh vực khác nhau.

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

Ngày nay, họ nói về các công nghệ học sâu thời thượng như thể đó là ma-nang từ thiên đường. Nhưng liệu 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ả một loạt công nghệ. Trong bài đăng này, tôi muốn giải thích một cách phổ biến nhất có thể và về cơ bản những gì đằng sau thuật ngữ này, tại sao nó lại phổ biến 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 này (học sâu) nói về cách tập hợp một sự trừu tượng (biểu diễn) phức tạp hơn và sâu sắc hơn từ một số sự trừu tượng đơn giản. mặc dù thực tế là ngay cả những phần trừu tượng đơn giản nhất cũng phải được lắp ráp bởi chính máy tính chứ không phải bởi con người. Những thứ kia. Nó không còn chỉ là về học tập nữa mà là về siêu học tập. Nói một cách hình tượng, bản thân máy tính phải học cách học tốt nhất. Và trên thực tế, đây chính xác là ý nghĩa của thuật ngữ “sâu”. Hầu như luôn luôn, thuật ngữ này được áp dụng cho các mạng thần kinh nhân tạo sử dụng nhiều hơn một lớp ẩn, do đó, “sâu” chính thức cũng có nghĩa là kiến ​​trúc mạng thần kinh sâu hơn.

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

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

Sau đó, họ lắng nghe cách bộ não phân biệt các đặc điểm và nó thực hiện điều này theo cách phân cấp nghiêm ngặt, đồng thời họ cũng 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 hơn (các lớp nằm giữa đầu vào và đầu ra; nói một cách đại khái là các giai đoạn 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 khi tế bào thần kinh được phát minh, nhưng 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 lâu như các mạng thông thường, chỉ là chúng ta không thể đào tạo chúng. Điều gì đã thay đổi?

Vào 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 (ngoài ra, khả năng phần cứng đã đủ phát triển, các card màn hình khá mạnh đã xuất hiện). Các nhà nghiên cứu này là: Geoffrey Hinton (và đồng nghiệp của ông là Ruslan Salakhutidinov) với kỹ thuật đào tạo trước từng lớp của mạng lưới thần kinh bằng máy Boltzmann bị ràng buộc (thứ lỗi cho tôi vì những thuật ngữ này...), Yann LeCun với mạng lưới thần kinh tích chập, và Yoshuay Bengio với bộ mã hóa 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, trong đó họ cho biết học sâu là gì. Không ai có thể nói với bạn về điều này tốt hơn họ. Một cái hay khác bài học Schmidhuber về sự phát triển của deep learning, 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.

Mạng lưới thần kinh sâu có thể làm gì bây giờ? Họ có thể nhận biết và mô tả đồ vật; người ta có thể nói rằng họ “hiểu” đồ vật đó là gì. Đó là về việc nhận ra ý nghĩa.

Chỉ cần xem video này để nhận biết theo thời gian thực những gì camera nhìn thấy.

Như tôi đã nói, công nghệ deep learning là một nhóm công nghệ và giải pháp. Tôi đã liệt kê một số mạng trong số chúng ở đoạn trên, một ví dụ khác là mạng lặp lại, được sử dụng chính xác 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 loại công nghệ này vẫn là mạng nơ-ron tích chập của LyaKun. 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ái gọi là tế bào đơ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à các tế bào phức tạp - phản ứng liên quan đến kích hoạt một bộ nhất định tế bào đơn giản. Mặc dù thành thật mà nói, bản thân LaCun không tập trung vào sinh học nhưng anh ấy đã quyết định nhiệm vụ cụ thể(xem bài giảng của anh ấy), và rồi nó trùng hợp.

Nói một cách đơn giản, mạng tích chập là mạng trong đó thành phần cấu trúc chính của việc học là một nhóm (tổ hợp) các nơ-ron (thường là hình vuông 3x3, 10x10, v.v.) chứ không chỉ một. Và ở mỗi cấp độ của mạng lưới, 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 nhằm tối đa hóa thông tin về hình ảnh. Ở cấp độ đầu tiên, mạng trích xuất các yếu tố cơ bản, có cấu trúc đơn giản nhất của bức tranh - người ta có thể nói, xây dựng các đơn vị: ranh giới, nét, phân đoạn, độ tương phản. Lên cao hơn đã là sự kết hợp ổn định của các yếu tố ở cấp độ đầu tiên, v.v. Tôi muốn nhấn mạnh một lần nữa tính năng chính học sâu: các mạng tự hình thành các yếu tố này và quyết định yếu tố nào quan trọng hơn và yếu tố nào không. Điều này rất quan trọng vì trong lĩnh vực học máy, việc tạo ra các tính năng là điều then chốt và giờ đây chúng ta đang chuyển sang giai đoạn mà máy tính tự học cách tạo và chọn các tính năng. Bản thân máy xác định 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 (xem hàng trăm bức ảnh), mạng tích chập hình thành một hệ thống phân cấp các tính năng nhiều cấp độ khác nhauđộ sâu. Ở cấp độ đầu tiên, họ có thể làm nổi bật, chẳng hạn như 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, đây sẽ là một yếu tố từ các yếu tố của cấp độ đầu tiên. Vào ngày thứ ba - từ thứ hai. Chúng ta phải hiểu rằng bức ảnh này- chỉ là biểu tình thôi. Hiện nay đượ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ạng như vậy được huấn luyện, chúng ta có thể sử dụng nó để phân loại. Sau khi đưa ra một số hình ảnh làm đầu vào, các nhóm nơ-ron ở lớp đầu tiên sẽ chạy dọc theo hình ảnh, kích hoạt ở những nơi có thành phần hình ảnh tương ứng với một thành phần cụ thể. Những thứ kia. mạng này phân tích hình ảnh thành nhiều phần - đầu tiên là các đường, nét, góc nghiêng, sau đó là các phần phức tạp hơn và cuối cùng đưa ra kết luận rằng hình ảnh là từ kiểu kết hợp này yếu tố cơ bản- khuôn mặt này.

Thông tin thêm về mạng tích chập -

Trí tuệ nhân tạo, mạng lưới thần kinh, học máy - tất cả những khái niệm phổ biến hiện nay thực sự có ý nghĩa gì? Đối với hầu hết những người chưa quen, như bản thân tôi, chúng luôn có vẻ như một điều gì đó tuyệt vời, nhưng thực tế bản chất của chúng nằm ở bề ngoài. Tôi đã có ý tưởng viết từ lâu bằng ngôn ngữ đơn giản về mạng nơ ron nhân tạo. Hãy tự mình tìm hiểu và nói cho người khác biết công nghệ này là gì, nó hoạt động như thế nào, xem xét lịch sử và triển vọng của nó. Trong bài viết này, tôi cố gắng không đi sâu vào vấn đề cỏ dại mà chỉ nói một cách đơn giản và phổ biến về hướng đi đầy hứa hẹn này trong thế giới công nghệ cao.

Trí tuệ nhân tạo, mạng lưới thần kinh, học máy - tất cả những khái niệm phổ biến hiện nay thực sự có ý nghĩa gì? Đối với hầu hết những người chưa quen, như bản thân tôi, chúng luôn có vẻ như một điều gì đó tuyệt vời, nhưng thực tế bản chất của chúng nằm ở bề ngoài. Tôi đã có ý tưởng viết bằng ngôn ngữ đơn giản về mạng lưới thần kinh nhân tạo từ lâu. Hãy tự mình tìm hiểu và nói cho người khác biết công nghệ này là gì, nó hoạt động như thế nào, xem xét lịch sử và triển vọng của nó. Trong bài viết này, tôi cố gắng không đi sâu vào vấn đề cỏ dại mà chỉ nói một cách đơn giản và phổ biến về hướng đi đầy hứa hẹn này trong thế giới công nghệ cao.

Một ít lịch sử

Lần đầu tiên, khái niệm mạng lưới thần kinh nhân tạo (ANN) nảy sinh trong nỗ lực mô phỏng các quá trình của não. Bước đột phá lớn đầu tiên trong lĩnh vực này có thể coi là việc tạo ra mô hình mạng lưới thần kinh McCulloch-Pitts vào năm 1943. Các nhà khoa học lần đầu tiên phát triển một mô hình nơ-ron nhân tạo. Họ cũng đề xuất thiết kế một mạng lưới gồm các phần tử này để thực hiện các hoạt động logic. Nhưng quan trọng nhất, các nhà khoa học đã chứng minh được rằng một mạng lưới như vậy có khả năng học hỏi.

Kế tiếp bước quan trọng là sự phát triển của Donald Hebb về thuật toán đầu tiên để tính toán ANN vào năm 1949, thuật toán này đã trở thành nền tảng trong nhiều thập kỷ tiếp theo. Năm 1958, Frank Rosenblatt đã phát triển parceptron, một hệ thống bắt chước các quá trình của não. Đã có lúc, công nghệ này không có chất tương tự và vẫn là nền tảng trong mạng lưới thần kinh. Năm 1986, gần như đồng thời, độc lập với nhau, các nhà khoa học Mỹ và Liên Xô đã cải tiến đáng kể phương pháp cơ bản để huấn luyện một cơ quan cảm nhận đa lớp. Năm 2007, mạng lưới thần kinh đã trải qua sự tái sinh. Nhà khoa học máy tính người Anh Geoffrey Hinton lần đầu tiên phát triển một thuật toán học sâu cho mạng lưới thần kinh đa lớp, chẳng hạn, thuật toán này hiện được sử dụng để vận hành ô tô tự lái.

Nói ngắn gọn về điều chính

TRONG theo nghĩa chung Nói cách khác, mạng lưới thần kinh là mô hình toán học, hoạt động dựa trên nguyên tắc mạng lưới các tế bào thần kinh trong cơ thể động vật. ANN có thể được triển khai trong cả giải pháp lập trình và phần cứng. Để dễ hiểu hơn, có thể coi tế bào thần kinh như một ô có nhiều lỗ vào và một lỗ ra. Cách nhiều tín hiệu đến được tạo thành tín hiệu đầu ra được xác định bằng thuật toán tính toán. Các giá trị hiệu dụng được cung cấp cho mỗi đầu vào nơ-ron, sau đó được phân phối dọc theo các kết nối nơ-ron nội tạng (tóm tắt). Các khớp thần kinh có một tham số - trọng số, do đó thông tin đầu vào thay đổi khi di chuyển từ nơron này sang nơron khác. Cách dễ nhất để hình dung nguyên lý hoạt động của mạng lưới thần kinh là trộn lẫn các màu sắc. Tế bào thần kinh màu xanh lam, xanh lục và đỏ có trọng lượng khác nhau. Thông tin của nơron có trọng lượng lớn hơn sẽ chiếm ưu thế ở nơron tiếp theo.

Bản thân mạng lưới thần kinh là một hệ thống gồm nhiều nơ-ron (bộ xử lý) như vậy. Riêng các bộ xử lý này khá đơn giản (đơn giản hơn nhiều so với máy tính cá nhân), nhưng được kết nối trong hệ thống lớn tế bào thần kinh có khả năng thực hiện các nhiệm vụ rất phức tạp.

Tùy thuộc vào lĩnh vực ứng dụng, mạng nơ-ron có thể được diễn giải theo nhiều cách khác nhau. Ví dụ, theo quan điểm của máy học, ANN là một phương pháp nhận dạng mẫu. Từ quan điểm toán học, đây là một bài toán đa tham số. Theo quan điểm của điều khiển học - một mô hình điều khiển thích ứng của robot. Đối với trí tuệ nhân tạo, ANN là thành phần cơ bản để mô hình hóa trí tuệ tự nhiên bằng các thuật toán tính toán.

Ưu điểm chính của mạng nơ-ron so với các thuật toán điện toán thông thường là khả năng học hỏi của chúng. Theo nghĩa chung của từ này, học tập là tìm ra các hệ số ghép chính xác giữa các nơ-ron, cũng như tóm tắt dữ liệu và xác định sự phụ thuộc phức tạp giữa tín hiệu đầu vào và đầu ra. Trên thực tế, việc đào tạo thành công mạng lưới thần kinh có nghĩa là hệ thống sẽ có thể xác định kết quả chính xác dựa trên dữ liệu không có trong tập huấn luyện.

Tình hình hiện tại

Và cho dù công nghệ này có hứa hẹn đến đâu thì ANN vẫn còn rất xa so với khả năng của bộ não và khả năng tư duy của con người. Tuy nhiên, mạng lưới thần kinh đã được sử dụng trong nhiều lĩnh vực hoạt động của con người. Cho đến nay, họ không có khả năng đưa ra những quyết định cực kỳ thông minh, nhưng họ có thể thay thế một người mà trước đây họ cần. Trong số rất nhiều lĩnh vực ứng dụng của ANN, chúng ta có thể lưu ý: việc tạo ra các hệ thống tự học quy trinh san xuat, không người lái xe cộ, hệ thống nhận dạng hình ảnh, thông minh hệ thống an ninh, robot, hệ thống giám sát chất lượng, giao diện giọng nói tương tác, hệ thống phân tích và nhiều hơn nữa. Việc sử dụng rộng rãi mạng lưới thần kinh này, trong số những thứ khác, là do sự xuất hiện của theo nhiều cách khác nhauđẩy nhanh quá trình đào tạo ANN.

Ngày nay, thị trường mạng lưới thần kinh rất lớn - hàng tỷ tỷ đô la. Như thực tế cho thấy, hầu hết các công nghệ mạng thần kinh trên khắp thế giới đều khác nhau rất ít. Tuy nhiên, việc sử dụng mạng lưới thần kinh là một hoạt động rất tốn kém, trong hầu hết các trường hợp chỉ có thể đủ khả năng chi trả bằng các công ty lớn. Phát triển, đào tạo và thử nghiệm mạng lưới thần kinh đòi hỏi lượng lớn khả năng tính toán, rõ ràng là những người chơi lớn trong thị trường CNTT có rất nhiều thứ này. Trong số các công ty chính dẫn đầu sự phát triển trong lĩnh vực này có bộ phận Google DeepMind, bộ phận Nghiên cứu của Microsoft, IBM, Facebook và Baidu.

Tất nhiên, tất cả điều này đều tốt: mạng lưới thần kinh đang phát triển, thị trường đang phát triển, nhưng cho đến nay vấn đề chính vẫn chưa được giải quyết. Nhân loại đã thất bại trong việc tạo ra một công nghệ có khả năng gần giống với bộ não con người. Hãy xem xét những khác biệt chính giữa bộ não con người và mạng lưới thần kinh nhân tạo.

Tại sao mạng lưới thần kinh vẫn còn cách xa bộ não con người?

Sự khác biệt quan trọng nhất làm thay đổi căn bản nguyên tắc và hiệu quả của hệ thống là thiết bị khác nhau tín hiệu trong mạng nơ-ron nhân tạo và trong mạng nơ-ron sinh học. Thực tế là trong ANN, các nơ-ron truyền các giá trị là giá trị thực, tức là các con số. Trong não người, các xung được truyền với biên độ cố định và những xung này gần như tức thời. Nó theo sau từ này toàn bộ dòngƯu điểm của mạng lưới nơ-ron con người

Đầu tiên, các đường truyền thông trong não hiệu quả và tiết kiệm hơn nhiều so với các đường truyền trong ANN. Thứ hai, mạch xungđảm bảo việc triển khai công nghệ dễ dàng: chỉ cần sử dụng mạch tương tự thay vì các cơ chế tính toán phức tạp. Đến cuối cùng, mạng xungđược bảo vệ khỏi nhiễu âm thanh. Số thực có thể bị nhiễu, làm tăng khả năng xảy ra lỗi.

Điểm mấu chốt

Tất nhiên, trong thập kỷ qua đã có sự bùng nổ thực sự trong việc phát triển mạng lưới thần kinh. Điều này chủ yếu là do quá trình đào tạo ANN đã trở nên nhanh hơn và dễ dàng hơn nhiều. Cái gọi là mạng lưới thần kinh “được đào tạo trước” cũng đã bắt đầu được phát triển tích cực, điều này có thể đẩy nhanh đáng kể quá trình giới thiệu công nghệ. Và nếu còn quá sớm để nói liệu một ngày nào đó mạng lưới thần kinh có thể tái tạo đầy đủ khả năng của bộ não con người hay không thì khả năng trong thập kỷ tới ANN có thể thay thế con người trong 1/4 các ngành nghề hiện có đang ngày càng trở thành hiện thực. .

Dành cho những ai muốn biết thêm

  • Cuộc chiến thần kinh vĩ đại: Google thực sự đang làm gì
  • Máy tính nhận thức có thể thay đổi tương lai của chúng ta như thế nào