Skip to content
Home » Deep Learning Co Ban | Generative Adversarial Networks (Gan)

Deep Learning Co Ban | Generative Adversarial Networks (Gan)

Lập Trình Deep Learning Cho Người Mới Bắt Đầu (Tensorflow)

Các thuật toán của Deep Learning là gì?

Mạng nơ-ron cổ điển

Kiến trúc cổ điển của mạng nơ-ron là một mạng được kết nối đầy đủ được xác định bởi các Perceptron nhiều lớp. (Perceptron là một thuật toán đơn giản để tìm ranh giới siêu phẳng trong các bài toán phân loại nhị phân.) Mạng nơ-ron cổ điển, do Frank Rosenblatt phát minh năm 1958, chủ yếu được sử dụng để giải các bài toán phân loại nhị phân.

Mô hình này thường sử dụng các loại hàm sau:

  • Hàm tuyến tính
  • Hàm phi tuyến tính: gồm có hàm tanh, hàm sigmoid và hàm ReLU (Rectified Linear Unit).

Biết rõ Deep Learning là gì, ta thấy kiến trúc mạng nơ-ron truyền thống tương đối đơn giản và nó phù hợp nhất cho các tập dữ liệu dạng bảng hoặc các vấn đề phân loại và hồi quy với các đầu vào giá trị thực.

Mạng nơ-ron tích chập (CNN)

Mạng nơ-ron tích chập (CNN) là một kiến trúc mạng nơ-ron nhân tạo nâng cao được thiết kế để giải quyết các vấn đề phức tạp, đặc biệt là những vấn đề có liên quan đến việc xử lý hình ảnh.

Tích chập là một khái niệm trong xử lý tín hiệu kỹ thuật số biến đổi dữ liệu đầu vào bằng cách sử dụng một phép chập với bộ lọc để tạo ra một tín hiệu mới như một đầu ra. Tín hiệu này sẽ làm giảm các tính năng mà bộ lọc không quan tâm, trong khi vẫn giữ lại các tính năng chính và quan trọng nhất.

Ngoài các lớp đầu vào và đầu ra, mô hình CNN bao gồm một lớp lấy mẫu để giới hạn số lượng nơ-ron tham gia vào các lớp khác nhau. Các ứng dụng phổ biến nhất của CNN, dựa trên các đặc điểm của nó, bao gồm nhận dạng hình ảnh, phân tích video, phân tích và phân đoạn, xử lý ngôn ngữ tự nhiên,…

Mạng nơ-ron hồi quy (RNN)

Mạng nơ-ron hồi quy (RNN) là một thuật toán mà nếu bạn đang nghiên cứu về các loại thuật toán của Deep Learning là gì, bạn không nên bỏ qua. Đây là một loại thuật toán xử lý ngôn ngữ tự nhiên nổi tiếng. Đầu vào và đầu ra của các mô hình mạng nơ ron truyền thống là độc lập với nhau. Tuy nhiên, RNN thực hiện cùng một nhiệm vụ cho tất cả các phần tử của một chuỗi, với đầu ra phụ thuộc vào cả hai phép tính trước đó. Kết quả là RNN có thể nhớ lại thông tin đã tính toán trước đó.

Mạng sinh đối nghịch (GAN)

Đây là thuật toán mà bất kỳ ai khi nghiên cứu về Deep Learning là gì đều nên tìm hiểu. Mạng sinh đối nghịch (GAN) là một lớp mô hình có mục tiêu là tạo ra dữ liệu giả mạo có vẻ giống thật. Tên của mạng dựa trên kiến trúc kết hợp hai mạng có mục tiêu đối lập nhau: Generator và Discriminator. Generator học cách tạo dữ liệu giả để đánh lừa mô hình Discriminator và Discriminator học cách phân biệt giữa dữ liệu giả và dữ liệu thực.

Cả hai mô hình đều cải thiện khả năng của chúng thông qua đào tạo. Một số ứng dụng GAN phổ biến bao gồm: tạo khuôn mặt người, tạo hình ảnh đối tượng, thay đổi độ tuổi của khuôn mặt, tạo nhân vật hoạt hình,…

Boltzmann Machine

Vì đây là mô hình mạng không có hướng xác định nên các node được kết nối theo hình tròn. Máy Boltzmann thường xuyên được sử dụng để tạo ra các tham số cho mô hình dựa trên kiến trúc này.

Nếu hiểu về loại thuật toán này của Deep Learning là gì, bạn có thể nhận ra mô hình này được sử dụng phổ biến nhất để hệ thống khuyến nghị nhị phân, giám sát hệ thống, xây dựng…

Deep Reinforcement Learning

Deep Reinforcement Learning còn được gọi là học tăng cường sâu là quá trình các tác nhân tương tác với môi trường để thay đổi trạng thái của chính nó. Các đại lý có thể quan sát và phản hồi một cách thích hợp, hỗ trợ mạng lưới đạt được mục tiêu của mình.

Mô hình mạng này được tạo thành từ một lớp đầu vào, một lớp đầu ra và nhiều lớp ẩn khác, với lớp đầu vào đại diện cho trạng thái của môi trường. Mô hình sẽ liên tục huấn luyện để dự đoán điểm số thu được sau mỗi hành động được thực hiện ở mỗi trạng thái. Mô hình học tăng cường sâu thường được sử dụng trong rô bốt, cờ vua, ô tô tự lái, poker và các ứng dụng khác.

Autoencoder

Autoencoder là một trong những kỹ thuật Deep Learning phổ biến nhất hiện nay, có khả năng học cách biểu diễn dữ liệu đầu vào mà không cần nhãn, hay nói cách khác là học không giám sát. Có thể thấy thông qua tìm hiểu Deep Learning là gì, ta đã biết thêm những kiến thức thú vị khác. Các ứng dụng phổ biến bao gồm đề xuất hệ thống, phát hiện tính năng, bổ sung tính năng cho tập dữ liệu,…

Backpropagation

Backpropagation được gọi là lan truyền ngược, đây là một trong những kỹ thuật mạng nơ-ron quan trọng nhất. Về cơ bản, đây là phương pháp tính toán Gradient ngược từ lớp cuối cùng đến lớp đầu tiên của mạng. Đầu tiên mạng sẽ phân tích các thông số trước khi điều chỉnh thông qua hàm mất mát. Giá trị lỗi được tính toán sau đó được truyền trở lại để điều chỉnh các tham số khi cần thiết.

Gradient Descent

Tìm hiểu Deep Learning là gì, ta thấy với thuật toán Gradient Descent, chúng ta sẽ thường phải tìm giá trị nhỏ nhất (hoặc lớn nhất) của một hàm trong học sâu và tối ưu hóa. Mặt khác, việc tìm kiếm các điểm tối ưu toàn cục của hàm mất mát thường rất khó khăn, nếu không muốn nói là không thể. Kết quả là, chúng ta có thể cố gắng tìm ra các điểm cực tiểu cục bộ, có thể được coi là giải pháp mong muốn cho vấn đề.

Lời kết

Chúng ta đã tìm hiểu Deep Learning là gì, các ứng dụng phổ biến và các trường hợp nên sử dụng Deep Learning trong bài viết này. Có thể thấy đây không phải là lĩnh vực mới, nhưng sự bùng nổ dữ liệu trong những năm gần đây đã giúp các nhà khoa học khai thác triệt để mô hình mạng nơ-ron nhân tạo, mở đường cho những nghiên cứu trong tương lai.

Hy vọng thông tin trong bài viết này hữu ích cho bạn. Vui lòng để lại bình luận nếu bạn có bất kỳ câu hỏi hoặc nhận xét nào. Nếu bạn quan tâm đến các sản phẩm và dịch vụ của Máy Chủ Sài Gòn, hãy liên hệ với chúng tôi qua Hotline: 0976.638.715 hoặc Email: [email protected].

Lập Trình Deep Learning Cho Người Mới Bắt Đầu (Tensorflow)
Lập Trình Deep Learning Cho Người Mới Bắt Đầu (Tensorflow)

Điều gì mang đến sự thành công của deep learning?

Rất nhiều những ý tưởng cơ bản của deep learning được đặt nền móng từ những năm 80-90 của thế kỷ trước, tuy nhiên deep learning chỉ đột phá trong khoảng 5-6 năm nay. Vì sao?

Có nhiều nhân tố dẫn đến sự bùng nổ này:

  • Sự ra đời của các bộ dữ liệu lớn được gán nhãn.

  • Khả năng tính toán song song tốc độ cao của GPU.

  • Sự ra đời của ReLU và các hàm kích hoạt liên quan làm hạn chế vấn đề vanishing gradient.

  • Sự cải tiến của các kiến trúc: GoogLeNet, VGG, ResNet, … và các kỹ thuật transfer learning, fine tuning.

  • Nhiều kỹ thuật regularization mới: dropout, batch normalization, data augmentation.

  • Nhiều thư viện mới hỗ trợ việc huấn luyện deep network với GPU: theano, caffe, mxnet, tensorflow, pytorch, keras, …

  • Nhiều kỹ thuật tối ưu mới: Adagrad, RMSProp, Adam, …

Giới thiệu

Hồi đầu năm 2019, khi nghiên cứu ứng dụng về Deep Learning trong ngành Y, mình nhận ra là mặc dù bản thân mình là kỹ sư có khả năng lập trình Deep Learning nhưng lại thiếu kiến thức chuyên môn ngành Y để phát triển ứng dụng chuyên sâu. Ngược lại, các bác sĩ hiểu được các vấn đề chuyên môn thì lại thiếu các kỹ năng lập trình cần thiết.

Thế nên mình quyết định viết loạt bài viết này để giới thiệu các kiến thức cơ bản về Deep Learning cũng như các ứng dụng của nó để mọi người có kiến thức chuyên môn, có dữ liệu trong các ngành khác như y tế, ngân hàng, nông nghiệp,… có thể tự áp dụng được Deep Learning trong lĩnh vực của họ.

Thêm vào đó mình muốn cung cấp một nền tảng về toán và Deep Learning cơ bản cho các bạn học sinh, sinh viên có thể làm được ứng dụng và đào sâu nghiên cứu về deep learning trong môi trường học thuật.

Vì hướng mình nhiều độc giả với các background khác nhau nên khi viết mình giải thích toán chi tiết nhưng đơn giản và dễ hiểu. Bên cạnh đó mình cũng có các bài ứng dụng Deep Learning trong thực tế xen kẽ giữa các nội dung lý thuyết để bạn đọc dễ tiếp thu hơn.

Cuối cùng, hy vọng qua cuốn sách, bạn đọc có được những kiến thức cơ bản về Deep Learning và thấy được các ứng dụng của nó. Để rồi áp dụng các ý tưởng vào start-up, công ty để có các ứng dụng hay, thiết thực cho xã hội. Bên cạnh đó mong rằng cuấn sách là bệ phóng cho các bạn sinh viên Việt Nam nghiên cứu thêm về Deep Learning để có các nghiên cứu, thuật toán mới.

Điểm mới so với blog

Sách Deep Learning cơ bản được tổng hợp từ series deep learning cơ bản từ trên blog của mình. Tuy nhiên nội dung sách được biên soạn cẩn thận hơn so với blog ở các phần sau:

  • Hướng dẫn cài đặt và sử dụng môi trường Anaconda cũng như google colab cho người mới dùng dễ sử dụng hơn.
  • Kiến thức về Python cơ bản.
  • Phần bài tập sau mỗi chương để bạn đọc vận dụng các kiến thức đã học.
  • Nội dung mỗi bài được chỉnh sửa cẩn thận hơn.

Thông điệp

Từ những ngày đầu tiên viết blog mình luôn quan niệm “chia sẻ là để học hỏi” thế nên “kiến thức là để cho đi”. Cuốn sách này được chia sẻ miễn phí tới bạn đọc với thông điệp:

“Vì một cộng đồng AI Việt Nam phát triển bền vững”

Tuy nhiên, nếu bạn thấy nội dung trên blog, sách “Deep Learning cơ bản” hữu ích cũng như ủng hộ các bài viết sắp tới của mình và muốn đóng góp cho blog. Bạn có thể ủng hộ theo hướng dẫn sau.

Master Anh Đức hỏi về Chiến lược phát triển kinh doanh cho Nhà Đào Tạo - Phạm Thành Long
Master Anh Đức hỏi về Chiến lược phát triển kinh doanh cho Nhà Đào Tạo – Phạm Thành Long

Nội dung sách

Chương I, mình giới thiệu về cách cài đặt môi trường với Anaconda để chạy code Python cơ bản. Ngoài ra mình cũng hướng dẫn sử dụng Google Colab, với GPU Tesla K80 được Google cung cấp miễn phí. Nên bạn đọc có thể train model online thay vì sử dụng máy tính, laptop cá nhân.

Chương II, mình đề cập đến Machine Learning cơ bản với hai thuật toán Linear Regerssion và Logistic Regression. Đồng thời mình giới thiệu về thuật toán Gradient descent, rất quan trọng trong Deep Learning. Bên cạnh đó mình giới thiệu các kiến thức Toán cơ bản như: phép toán với ma trận, biểu diễn bài toán dạng ma trận,…

Chương III, mình giới thiệu về bài toán Neural Network cũng chính là xương sống của Deep Learning và thuật toán Backpropagation để giải bài toán này. Ngoài ra, để hiểu rõ bản chất của Neural Network nên mình cũng hướng dẫn mọi người code từ đầu Neural Network và Backpropagation bằng Python trong chương này.

Chương IV, mình đề cập tới Convolutional Neural Network (CNN) cho bài toán có xử lý ảnh. Sau đó giới thiệu về thư viện Keras và ứng dụng CNN cho bài toán phân loại ảnh với bộ dữ liệu chữ số viết tay (MNIST). Cuối chương mình giới thiệu về ứng dụng thực tế của CNN cho bài toán ô tô tự lái.

Chương V, mình giới thiệu một số tips trong Deep Learning như transfer learning, data augmentation, mini-batch gradient descent, dropout, non-linear activation, … để tăng độ hiệu quả của mô hình.

Chương VI, tiếp nối ý tưởng từ chương IV, mình đề cập đến hai bài toán lớn của Deep Learning trong Computer Vision. Đó là bài toán về Object Detection và Image Segmentation. Bên cạnh đó mình có hướng dẫn các bước làm bài toán detect biển số xe máy.

Chương VII, mình giới thiệu về thuật toán Recurrent Neural Network (RNN) cho bài toán dữ liệu dạng chuỗi và mô hình cải tiến của nó là Long Short Term Memory (LSTM). Sau đó mình hướng dẫn mọi người áp dụng mô hình LSTM cho bài toán thêm mô tả cho ảnh. Cuối cùng mình giới thiệu mạng sequence to sequence (seq2seq) cho bài toán dịch cùng cơ chế attention.

Chương cuối mình giới thiệu về mạng generative adversarial networks (GAN) với một số mô hình GAN như deep convolutional GAN (DCGAN), conditional GAN (cGAN).

Những dấu mốc quan trọng của deep learning

Deep learning được nhắc đến nhiều trong những năm gần đây, nhưng những nền tảng cơ bản đã xuất hiện từ rất lâu …

Chúng ta cùng quan sát hình dưới đây:

Perceptron (60s)

Một trong những nền móng đầu tiên của neural network và deep learning là perceptron learning algorithm (hoặc gọn là perceptron). Perceptron là một thuật toán supervised learning giúp giải quyết bài toán phân lớp nhị phân, được khởi nguồn bởi Frank Rosenblatt năm 1957 trong một nghiên cứu được tài trợ bởi Văn phòng nghiên cứu hải quân Hoa Kỳ (U.S Office of Naval Research – từ một cơ quan liên quan đến quân sự). Thuật toán perceptron được chứng minh là hội tụ nếu hai lớp dữ liệu là linearly separable. Với thành công này, năm 1958, trong một hội thảo, Rosenblatt đã có một phát biểu gây tranh cãi. Từ phát biểu này, tờ New York Times đã có một bài báo cho rằng perceptron được Hải quân Hoa Kỳ mong đợi “có thể đi, nói chuyện, nhìn, viết, tự sinh sản, và tự nhận thức được sự tồn tại của mình”. (Chúng ta biết rằng cho tới giờ các hệ thống nâng cao hơn perceptron nhiều lần vẫn chưa thể).

Mặc dù thuật toán này mang lại nhiều kỳ vọng, nó nhanh chóng được chứng minh không thể giải quyết những bài toán đơn giản. Năm 1969, Marvin Minsky và Seymour Papert trong cuốn sách nổi tiếng Perceptrons đã chứng minh rằng không thể ‘học’ được hàm số XOR khi sử dụng perceptron. Phát hiện này làm choáng váng giới khoa học thời gian đó (bây giờ chúng ta thấy việc này khá hiển nhiên). Perceptron được chứng minh rằng chỉ hoạt động nếu dữ liệu là linearly separable.

Phát hiện này khiến cho các nghiên cứu về perceptron bị gián đoạn gần 20 năm. Thời kỳ này còn được gọi là Mùa đông AI thứ nhất (The First AI winter).

Cho tới khi…

MLP và Backpropagation ra đời (80s)

Geoffrey Hinton tốt nghiệp PhD ngành neural networks năm 1978. Năm 1986, ông cùng với hai tác giả khác xuất bản một bài báo khoa học trên Nature với tựa đề “Learning representations by back-propagating errors”. Trong bài báo này, nhóm của ông chứng minh rằng neural nets với nhiều hidden layer (được gọi là multi-layer perceptron hoặc MLP) có thể được huấn luyện một cách hiệu quả dựa trên một quy trình đơn giản được gọi là backpropagation (backpropagation là tên gọi mỹ miều của quy tắc chuỗi – chain rule – trong tính đạo hàm. Việc tính được đạo hàm của hàm số phức tạp mô tả quan hệ giữa đầu vào và đầu ra của một neural net là rất quan trọng vì hầu hết các thuật toán tối ưu đều được thực hiện thông qua việc tính đạo hàm, gradient descent là một ví dụ). Việc này giúp neural nets thoát được những hạn chế của perceptron về việc chỉ biểu diễn được các quan hệ tuyến tính. Để biểu diễn các quan hệ phi tuyến, phía sau mỗi layer là một hàm kích hoạt phi tuyến, ví dụ hàm sigmoid hoặc tanh. (ReLU ra đời năm 2012). Với hidden layers, neural nets được chứng minh rằng có khả năng xấp xỉ hầu hết bất kỳ hàm số nào qua một định lý được gọi là universal approximation theorem. Neurel nets quay trở lại cuộc chơi.

Thuật toán này mang lại một vài thành công ban đầu, nổi trội là convolutional neural nets (convnets hay CNN) (còn được gọi là LeNet) cho bài toán nhận dạng chữ số viết tay được khởi nguồn bởi Yann LeCun tại AT&T Bell Labs (Yann LeCun là sinh viên sau cao học của Hinton tại đại học Toronto năm 1987-1988). Dưới đây là bản demo được lấy từ trang web của LeNet, network là một CNN với 5 layer, còn được gọi là LeNet-5 (1998).

Mô hình này được sử dụng rộng rãi trong các hệ thống đọc số viết tay trên các check (séc ngân hàng) và mã vùng bưu điện của nước Mỹ.

LeNet là thuật toán tốt nhất thời gian đó cho bài toán nhận dạng ảnh chữ số viết tay. Nó tốt hơn MLP thông thường (với fully connected layer) vì nó có khả năng trích xuất được đặc trưng trong không gian hai chiều của ảnh thông qua các filters (bộ lọc) hai chiều. Hơn nữa, các filter này nhỏ nên việc lưu trữ và tính toán cũng tốt hơn so với MLP thông thường. (Yan LeCun có xuất phát từ Electrical Engineering nên rất quen thuộc với các bộ lọc.)

Mùa đông AI thứ hai (90s – đầu 2000s)

Các mô hình tương tự được kỳ vọng sẽ giải quyết nhiều bài toán image classification khác. Tuy nhiên, không như các chữ số, các loại ảnh khác lại rất hạn chế vì máy ảnh số chưa phổ biến tại thời điểm đó. Ảnh được gán nhãn lại càng hiếm. Trong khi để có thể huấn luyện được mô hình convnets, ta cần rất nhiều dữ liệu huấn luyện. Ngay cả khi dữ liệu có đủ, một vấn đề nan giải khác là khả năng tính toán của các máy tính thời đó còn rất hạn chế.

Một hạn chế khác của các kiến trúc MLP nói chung là hàm mất mát không phải là một hàm lồi. Việc này khiến cho việc tìm nghiệm tối ưu toàn cục cho bài toán tối ưu hàm mất mát trở nên rất khó khăn. Một vấn đề khác liên quan đến giới hạn tính toán của máy tính cũng khiến cho việc huấn luyện MLP không hiệu quả khi số lượng hidden layers lớn lên. Vấn đề này có tên là vanishing gradient.

Nhắc lại rằng hàm kích hoạt được sử dụng thời gian đó là sigmoid hoặc tanh – là các hàm bị chặn trong khoảng (0, 1) hoặc (-1, 1) (Nhắc lại đạo hàm của hàm sigmoid \(\sigma(z)\) là \(\sigma(z)(1 – \sigma(z))\) là tích của hai số nhỏ hơn 1). Khi sử dụng backpropagation để tính đạo hàm cho các ma trận hệ số ở các lớp đầu tiên, ta cần phải nhân rất nhiều các giá trị nhỏ hơn 1 với nhau. Việc này khiến cho nhiều đạo hàm thành phần bằng 0 do xấp xỉ tính toán. Khi đạo hàm của một thành phần bằng 0, nó sẽ không được cập nhật thông qua gradient descent!

Những hạn chế này khiến cho neural nets một lần nữa rơi vào thời kỳ băng giá. Vào thời điểm những năm 1990 và đầu những năm 2000, neural nets dần được thay thế bởi support vector machines –SVM. SVMs có ưu điểm là bài toán tối ưu để tìm các tham số của nó là một bài toán lồi – có nhiều các thuật toán tối ưu hiệu quả giúp tìm nghiệm của nó. Các kỹ thuật về kernel cũng phát triển giúp SVMs giải quyết được cả các vấn đề về việc dữ liệu không phân biệt tuyến tính.

Nhiều nhà khoa học làm machine learning chuyển sang nghiên cứu SVM trong thời gian đó, trừ một vài nhà khoa học cứng đầu…

Cái tên được làm mới – Deep Learning (2006)

Năm 2006, Hinton một lần nữa cho rằng ông biết bộ não hoạt động như thế nào, và giới thiệu ý tưởng của tiền huấn luyện không giám sát (unsupervised pretraining) thông qua deep belief nets (DBN). DBN có thể được xem như sự xếp chồng các unsupervised networks đơn giản như restricted Boltzman machine hay autoencoders.

Lấy ví dụ với autoencoder. Mỗi autoencoder là một neural net với một hidden layer. Số hidden unit ít hơn số input unit, và số output unit bằng với số input unit. Network này đơn giản được huấn luyện để kết quả ở output layer giống với kết quả ở input layer (và vì vậy được gọi là autoencoder). Quá trình dữ liệu đi từ input layer tới hidden layer có thể coi là mã hoá, quá trình dữ liệu đi từ hidden layer ra output layer có thể được coi là giải mã. Khi output giống với input, ta có thể thấy rằng hidden layer với ít unit hơn có để mã hoá input khá thành công, và có thể được coi mang những tính chất của input. Nếu ta bỏ output layer, cố định (freeze) kết nối giữa input và hidden layer, coi đầu ra của hidden layer là một input mới, sau đó huấn luyện một autoencoder khác, ta được thêm một hidden layer nữa. Quá trình này tiếp tục kéo dài ta sẽ được một network đủ sâu mà output của network lớn này (chính là hidden layer của autoencoder cuối cùng) mang thông tin của input ban đầu. Sau đó ta có thể thêm các layer khác tuỳ thuộc vào bài toán (chẳng hạn thêm softmax layer ở cuối cho bài toán classification). Cả network được huấn luyện thêm một vài epoch nữa. Quá trình này được gọi là tinh chỉnh (fine tuning).

Tại sao quá trình huấn luyện như trên mang lại nhiều lợi ích?

Một trong những hạn chế đã đề cập của MLP là vấn đề vanishing gradient. Những ma trận trọng số ứng với các layer đầu của network rất khó được huấn luyện vì đạo hàm của hàm mất mát theo các ma trận này nhỏ. Với ý tưởng của DBN, các ma trận trọng số ở những hidden layer đầu tiên được tiền huấn luyện (pretrained). Các trọng số được tiền huấn luyện này có thể coi là giá trị khởi tạo tốt cho các hidden layer phía đầu. Việc này giúp phần nào tránh được sự phiền hà của vanishing gradient.

Kể từ đây, neural networks với nhiều hidden layer được đổi tên thành deep learning.

Vấn đề vanishing gradient được giải quyết phần nào (vẫn chưa thực sự triệt để), nhưng vẫn còn những vấn đề khác của deep learning: dữ liệu huấn luyện quá ít, và khả năng tính toán của CPU còn rất hạn chế trong việc huấn luyện các deep networks.

Năm 2010, giáo sư Fei-Fei Li, một giáo sư ngành computer vision đầu ngành tại Stanford, cùng với nhóm của bà tạo ra một cơ sở dữ liệu có tên ImageNet với hàng triệu bức ảnh thuộc 1000 lớp dữ liệu khác nhau đã được gán nhãn. Dự án này được thực hiện nhờ vào sự bùng nổ của internet những năm 2000 và lượng ảnh khổng lồ được upload lên internet thời gian đó. Các bức ảnh này được gán nhãn bởi rất nhiều người (được trả công).

Xem thêm How we teach computers to understand pictures. Fei-Fei Li

Bộ cơ sở dữ liệu này được cập nhật hàng năm, và kể từ năm 2010, nó được dùng trong một cuộc thi thường niên có tên ImageNet Large Scale Visual Recognition Challenge (ILSVRC). Trong cuộc thi này, dữ liệu huấn luyện được giao cho các đội tham gia. Mỗi đội cần sử dụng dữ liệu này để huấn luyện các mô hình phân lớp, các mô hình này sẽ được áp dụng để dự đoán nhãn của dữ liệu mới (được giữ bởi ban tổ chức). Trong hai năm 2010 và 2011, có rất nhiều đội tham gia. Các mô hình trong hai năm này chủ yếu là sự kết hợp của SVM với các feature được xây dựng bởi các bộ hand-crafted descriptors (SIFT, HoG, v.v.). Mô hình giành chiến thắng có top-5 error rate là 28% (càng nhỏ càng tốt). Mô hình giành chiến thắng năm 2011 có top-5 error rate là 26%. Cải thiện không nhiều!

Ngoài lề: top-5 error rate được tính như sau. Mỗi mô hình dự đoán 5 nhãn của một bức ảnh. Nếu nhãn thật của bức ảnh nằm trong 5 nhãn đó, ta có một điểm được phân lớp chính xác. Ngoài ra, bức ảnh đó được coi là một error. Top-5 error rate là tỉ lệ số bức ảnh error trong toàn bộ số ảnh kiểm thử với error được tính theo cách này. Top-1 error cộng với classification accuracy (phần trăm) chính bằng 100 phần trăm.

Đột phá (2012)

Năm 2012, cũng tại ILSVRC, Alex Krizhevsky, Ilya Sutskever, và Geoffrey Hinton (lại là ông) tham gia và đạt kết quả top-5 error rate 16%. Kết quả này làm sững sờ giới nghiên cứu thời gian đó. Mô hình là một Deep Convolutional Neural Network, sau này được gọi là AlexNet.

Trong bài báo này, rất nhiều các kỹ thuật mới được giới thiệu. Trong đó hai đóng góp nổi bật nhất là hàm ReLU và dropout. Hàm ReLU (\(\text{ReLU}(x) = \max(x, 0)\)) với cách tính và đạo hàm đơn giản (bằng 1 khi đầu vào không âm, bằng 0 khi ngược lại) giúp tốc độ huấn luyện tăng lên đáng kể. Ngoài ra, việc ReLU không bị chặn trên bởi 1 (như softmax hay tanh) khiến cho vấn đề vanishing gradient cũng được giải quyết phần nào. Dropout cũng là một kỹ thuật đơn giản và cực kỳ hiệu quả. Trong quá trình training, nhiều hidden unit bị tắt ngẫu nhiên và mô hình được huấn luyện trên các bộ tham số còn lại. Trong quá trình test, toàn bộ các unit sẽ được sử dụng. Cách làm này khá là có lý khi đối chiếu với con người. Nếu chỉ dùng một phần năng lực đã đem lại hiệu quả thì dùng toàn bộ năng lực sẽ mang lại hiệu quả cao hơn. Việc này cũng giúp cho mô hình tránh được overfitting và cũng được coi giống với kỹ thuật ensemble trong các hệ thống machine learning khác. Với mỗi cách tắt các unit, ta có một mô hình khác nhau. Với nhiều tổ hợp unit bị tắt khác nhau, ta thu được nhiều mô hình. Việc kết hợp ở cuối cùng được coi như sự kết hợp của nhiều mô hình (và vì vậy, nó giống với ensemble learning).

Một trong những yếu tố quan trọng nhất giúp AlexNet thành công là việc sử dụng GPU (card đồ hoạ) để huấn luyện mô hình. GPU được tạo ra cho game thủ, với khả năng chạy song song nhiều lõi, đã trở thành một công cụ cực kỳ phù hợp với các thuật toán deep learning, giúp tăng tốc thuật toán lên nhiều lần so với CPU.

Sau AlexNet, tất cả các mô hình giành giải cao trong các năm tiếp theo đều là các deep networks (ZFNet 2013, GoogLeNet 2014, VGG 2014, ResNet 2015). Tôi sẽ giành một bài của blog để viết về các kiến trúc quan trọng này. Xu thế chung có thể thấy là các mô hình càng ngày càng deep. Xem hình dưới đây.

Những công ty công nghệ lớn cũng để ý tới việc phát triển các phòng nghiên cứu deep learning trong thời gian này. Rất nhiều các ứng dụng công nghệ đột phá đã được áp dụng vào cuộc sống hàng ngày. Cũng kể từ năm 2012, số lượng các bài báo khoa học về deep learning tăng lên theo hàm số mũ. Các blog về deep learning cũng tăng lên từng ngày.

Xây dựng mạng nơ-ron nhân tạo từ con số 0 | Writing a Neural Network from scratch
Xây dựng mạng nơ-ron nhân tạo từ con số 0 | Writing a Neural Network from scratch

Sách Deep Learning cơ bản

Các thay đổi trong lần tái bản thứ hai:

  • Thêm chương GAN.
  • Viết bài sequence to sequence và attention.
  • Viết bài hướng dẫn dùng yolo để detect biển số xe.
  • Thêm phần visualize CNN.
  • So sánh các loss function cho linear regression.
  • Giải linear regression bằng đại số tuyến tính.
  • Viết lại phần python cơ bản.
  • Thêm phần word embedding.
  • Thêm phần batch normalization.
  • Hướng dẫn lưu model trong machine learning dùng numpy.
  • Đọc soát lại và sửa nội dung các phần trong sách.

Blog tác giả: https://nttuan8.com/sach-deep-learning-co-ban/

Academia.edu no longer supports Internet Explorer.

To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.

2019, Simple Deep Learning

2019 •

Preparing soft skills for students has been being a matter of great concern to both society and the education industry. Soft skills are an essential factor for the success and happiness of each individual. Many decades ago, the weakness of soft skills of Vietnamese students have been warned by educational organizations, businesses and domestic and foreign experts. Although knowledge that is considered as a necessary condition during the learning process; it is still not a sufficient condition for students who want to get a desired job. Nowadays, soft skills training activities are quite popular in almost universities and it is one of requirements for student’s graduation. However, these training activities are different in each university. In this study, from the practical experience in training soft skills of other universities, the authors recommend some basic solutions for integrating soft skills into main subjects in the specialized knowledge teaching process.

TNU Journal of Science and Technology

Tổng Hợp Một Số Phương Pháp Học Sâu Áp Dụng Vào Bài Toán Lựa Chọn Câu Trả Lời Trong Hệ Thống Hỏi Đáp Cộng Đồng

2021 •

Bài toán tìm câu trả lời (còn gọi là bài toán lựa chọn câu trả lời hay tìm câu trả lời tốt nhất) là một bài toán chính trong hệ thống hỏi đáp. Khi một câu hỏi được đăng lên forum sẽ có nhiều người tham gia trả lời câu hỏi. Bài toán lựa chọn câu trả lời với mục đích thực hiện sắp xếp các câu trả lời theo mức độ liên quan tới câu hỏi. Những câu trả lời nào đúng nhất sẽ được đứng trước các câu trả lời kém liên quan hơn. Trong những năm gần đây, rất nhiều mô hình học sâu được đề xuất sử dụng vào nhiều bài toán xử lý ngôn ngữ tự nhiên (NLP) trong đó có bài toán lựa chọn câu trả lời trong hệ thống hỏi đáp nói chung và trong hệ thống hỏi đáp cộng đồng (CQA) nói riêng. Hơn nữa, các mô hình được đề xuất lại thực hiện trên các tập dữ liệu khác nhau. Vì vậy, trong bài báo này, chúng tôi tiến hành tổng hợp và trình bày một số mô hình học sâu điển hình khi áp dụng vào bài toán tìm câu trả lời đúng trong hệ thống hỏi đáp và phân tích một số thách thức trên các tập dữ liệu cho bài toán trên hệ thố…

2021 •

TÓM TẮT: Rút gọn thuộc tính là bài toán quan trọng trong bước tiền xử lý dữ liệu của quá trình khai phá dữ liệu và khám phá tri thức. Trong mấy năm gần đây, các nhà nghiên cứu đề xuất các phương pháp rút gọn thuộc tính trực tiếp trên bảng quyết định gốc theo tiếp cận tập thô mờ (Fuzzy Rough Set FRS) nhằm nâng cao độ chính xác mô hình phân lớp. Tuy nhiên, số lượng thuộc tính thu được theo tiếp cận FRS chưa tối ưu do ràng buộc giữa các đối tượng trong bảng quyết định chưa được xem xét đầy đủ. Trong bài báo này, chúng tôi đề xuất phương pháp rút gọn thuộc tính trực tiếp trên bảng quyết định gốc theo tiếp cận tập thô mờ trực cảm (Intuitionistic Fuzzy Rough Set IFRS) dựa trên các đề xuất mới về hàm thành viên và không thành viên. Kết quả thử nghiệm trên các bộ dữ liệu mẫu cho thấy, số lượng thuộc tính của tập rút gọn theo phương pháp đề xuất giảm đáng kể so với các phương pháp FRS và một số phương pháp IFRS khác.

2014 •

Hue University Journal of Science: Social Sciences and Humanities

Dạy Học Chủ Đề “Khám Phá Từ Trường Trái Đất” Theo Định Hướng Nâng Cao Năng Lực Tự Học Cho Học Sinh Với Sự Hỗ Trợ Của Mạng Xã Hội

2019 •

JCER (Journal of Chemistry Education Research)

Training Science Process Skills Using Virtual Laboratory on Learning Acid, Base, and Salt

This study aims to train the Science Process skills to students on learning Acid, Base, and Salt using the Virtual Lab. The research was conducted on the students of SMA Negeri Cerme Gresik in the year 2017/2018. During the student learning using the virtual lab and guided by Student Worksheet, during the learning process conducted an observation of student activity, after learning conducted test of learning result, and questionnaire of student response to the use of the virtual laboratory. The result of the research shows that during the active learning of the students, the learning result reaches completeness, and the students give positive responses to the use of virtual laboratory as the learning medium of acid, base and salt.

JURNAL EKONOMI PENDIDIKAN DAN KEWIRAUSAHAAN

Preferensi Sumber Belajar Online Mahasiswa Pendidikan Ekonomi

2018 •

The availability of an increasingly diverse and number of online resources makes the choice of students richer and active learning more enjoyable, but the preferences and abilities of students in choosing the right learning resources need to be further analyzed. This research is survey research with cross-section data with Unesa Economic Education Study Program students as the research subject. The ability of the online student learning resource Preference Unesa is dominated by scientific journal portals, social media, institutional pages, news portals and personal blogs. Most of these learning resources are text rather than the video with ease of access being the main reason in choosing learning resources. Information about the learning resources they get mainly from social media, advice from friends, and then advice or information from lecturers.

IEEE Transactions on Neural Networks

Learning in the multiple class random neural network

2002 •

2017 •

1024×768 ABSTRAK Anggoro, Tito Wahyu. 2017. Pengembangan Perangkat Pembelajaran Blended Learning Materi Identifikasi Mikroorganisme untuk Meningkatkan Hasil Belajar Siswa Kelas XI Teknik Kimia SMK Negeri 2 Batu. Tesis, Program Studi Pendidikan Biologi, Pascasarjana, Universitas Negeri Malang, Pembimbing: (I) Prof. Dr. Dra. Utami Sri Hastuti, M.Pd., (II) Dr. Endang Suarsini, M.Ked. Kata kunci: perangkat pembelajaran, identifikasi mikroorganisme, blended learning, blog pembelajaran, handout praktikum Penelitian ini bertujuan untuk mengembangkan perangkat pembelajaran materi Identifikasi Mikroorganisme menggunakan model blended learning dengan hasil silabus, RPP, blog pembelajaran, dan handout praktikum. Kualitas hasil pengembangan meliputi kevalidan, kepraktisan, dan keefektifan. Kompetensi yang digunakan dalam pengembangan adalah sel dan koloni bakteri, khamir, dan kapang. Penelitian ini merupakan penelitian & pengembangan. Penelitian dilakukan mulai Februari 2016 sampai Desember 201…

Tạp chí Khoa học Đại học Đà Lạt

Nghiên Cứu Xây Dựng Mô Hình Điều Khiển Nhà Thông Minh Sử Dụng Kết Nối Bluetooth, GSM

2018 •

Loading Preview

Sorry, preview is currently unavailable. You can download the paper by clicking the button above.

Revista Brasileira de Medicina de Família e Comunidade

7ª Cumbre Iberoamericana de Medicina Familiar

… Journal of Marine …

Water quality in low-elevation streams and rivers of New Zealand: recent state and trends in contrasting land-cover classes

2004 •

2013 •

Nuclear Physics B

W- and Z-boson interactions in supersymmetric models with explicit R-parity violation

1996 •

2019 •

Lecture Notes in Computational Science and Engineering

Tunable Optical Filter

2008 •

2012 •

Seeds

Response of Capsicum annuum L. Seedlings Raised in Pro Trays to Inoculation with AM Fungus Glomus bagyarajii and K Solubilizing Bacterium Frateuria aurantia

2017 •

Progress in Nuclear Magnetic Resonance Spectroscopy

Cross-correlations in NMR

2000 •

التدريس والبحث في تاريخ وآثار الأردن في العصرين البرونزي والحديدي (حوالي 3600 – 332 قبل الميلاد)

زيدان الكفافي

2023 •

Evidence Based Health Policy, Management and Economics

The Effect of Startup Pre-surgery Consultation UnitsonWaiting Time before Surgery and Cancellation of Surgery: A Case Study at Farabi Hospital

2019 •

Renewable energy & power quality journal

Clustering daily solar radiation from Reunion Island using data analysis methods

2013 •

Conservation Genetics

Development and characterization of ten novel microsatellite markers from olive ridley sea turtle (Lepidochelys olivacea)

2007 •

PubMed

Immunohistochemical expression of fatty acid synthase, apoptotic-regulating genes, proliferating factors, and ras protein product in colorectal adenomas, carcinomas, and adjacent nonneoplastic mucosa

1999 •

Frontiers in Immunology

Age-Related Changes in Thymic Central Tolerance

2021 •

한국섬유공학회지 – 한국섬유공학회

Dyeing and Antimicrobial Properties of Chitosan-Treated Bamboo/Cotton Blended Fabric with Dye from Pomegranate Rind

2016 •

2014 •

Journal of the American Association of Nurse Practitioners

How important are autonomy and work setting to nurse practitioners’ job satisfaction?

2016 •

Học Deep Learning từ cơ bản đến nâng cao

Trong những năm gần đây, Deep Learning đã có những thành tựu quạn trọng. Từ việc phân loại hình ảnh và dịch ngôn ngữ đến chế tạo xe tự lái, tất cả các nhiệm vụ này đều được điều khiển bởi máy tính thay vì nỗ lực của con người. Deep Learning đã thâm nhập vào nhiều ngành công nghiệp và đa dạng, và nó tiếp tục phát triển. Vì vậy có thể hiểu được đây là lĩnh vực được rất nhiều người quan. Nhưng bạn nên bắt đầu từ đâu? Bạn nên học gì? Các khái niệm cốt lõi thực sự tạo nên lĩnh vực phức tạp nhưng hấp dẫn này là gì?

Mình rất hào hứng viết ra một loạt các bài báo mà tôi sẽ chia nhỏ các thành phần cơ bản mà mọi người đam mê tìm hiểu sâu nên biết kỹ. Các bài viết này sẽ flow theo khóa học Deep Learning trên cousera, và nhiều tài liệu tham khảo khác, mình sẽ viết ở cuối mỗi bài viết.

Chúng tôi sẽ thực hiện theo cách tiếp cận từ dưới lên trong suốt loạt bài này . Chúng ta phải hiểu các khái niệm cơ bản sau đó mới đi sâu vào trong. Cách tiếp cận này đã được chứng minh là rất hữu ích cho mình.

Prerequisite

Các kiến thức bạn cần có để học đơn giản hơn bao gồm:

  • Biết cơ bản về lập trình, trong loạt bài viết này mình sẽ dùng ngôn ngữ thông dụng python
  • Các kiến thức về toán như đại số tuyến tính, giải tích, xác xuất thống kê, …Bạn có thể tham khảo khóa học này
  • Biết sử dụng các thư viện cơ bản, framwork như: numpy, matplot, …
  • Có kiến thức nền tảng về machine learning. Các bạn có thể tham khảo tài liệu tiếng việt viết rất chi tiết của anh Tiệp Machine Learning cơ bản

Mình cũng mới tìm hiểu về lĩnh vực Deep Learning này, có gì sai sót, mọi nguời comment để mình biết và rút kinh nghiệm. Nào cùng bắt đâu.

Deep Learning là gì? Deep Learning (học sâu) là một chức năng trí tuệ nhân tạo (AI) bắt chước cách bộ não con người xử lý dữ liệu, tạo ra các mẫu để sử dụng cho việc ra quyết định. Vậy, để biết học sâu là gì? Bài viết này sẽ cung cấp những hiểu biết cơ bản nhất về Deep Learning, các ứng dụng của nó cũng như một số thuật toán và phổ biến. Cùng tìm hiểu bài viết này nhé!

Nội Dung Bài Viết

Nên sử dụng Deep Learning khi nào?

Deep Learning hoạt động tốt nhất với dữ liệu không có cấu trúc cụ thể. Các thuật toán Deep Learning có thể tự động tạo và khai thác các mẫu trong dữ liệu để đưa ra các quyết định tối ưu. Tuy nhiên, để đạt được độ chính xác tốt nhất, cần phải có một lượng lớn dữ liệu và tài nguyên tính toán.

Mỗi mô hình mạng nơ-ron có thể có hàng trăm hoặc hàng triệu tham số. Do đó, việc tối ưu hóa các thông số này đòi hỏi kiến thức và kinh nghiệm sâu rộng của người xây dựng mô hình. Hơn nữa, bởi vì mạng nơ-ron nhân tạo với nhiều chức năng phi tuyến rất phức tạp, việc hiểu và giải thích kết quả của mô hình là một thách thức khá khó khăn đối với các chuyên gia. Do đó, Deep Learning cơ bản không phải là một lựa chọn tốt cho các dự án đòi hỏi nhiều sự tương tác và phản hồi của con người.

Sinh viên IT nên và không nên chọn ngành gì ?
Sinh viên IT nên và không nên chọn ngành gì ?

Deep Learning là gì?

Deep Learning hay còn được gọi là học sâu. Đây là một lĩnh vực con của Machine Learning, trong đó máy tính sẽ học hỏi và cải tiến bản thân thông qua các thuật toán. Deep Learning cơ bản được tạo ra dựa trên các khái niệm phức tạp hơn nhiều, chủ yếu làm việc với các mạng nơ-ron nhân tạo để bắt chước khả năng suy nghĩ và tư duy của bộ não con người.

>> Xem thêm: AI là gì? Khám phá các ứng dụng hấp dẫn của AI

Chỉ khi tìm hiểu về Deep Learning là gì ta mới biết trên thực tế, các khái niệm liên quan đến mạng nơ-ron nhân tạo và học sâu là gì đã tồn tại từ những năm 1960, nhưng chúng bị giới hạn bởi sức mạnh tính toán và khối lượng dữ liệu vào thời điểm đó. Những tiến bộ trong phân tích dữ liệu lớn đã cho phép con người khai thác tối đa khả năng của mạng nơ-ron nhân tạo trong những năm gần đây.

Nếu bạn thắc mắc động lực chính thúc đẩy sự phát triển của Deep Learning là gì? Đó chính là mạng nơ-ron nhân tạo. Mạng nơ-ron sâu (DNN) được tạo thành từ nhiều lớp nơ-ron khác nhau có thể thực hiện các phép tính cực kỳ phức tạp. Deep Learning cơ bản hiện đang trở nên phổ biến và được coi là một trong những bước đột phá quan trọng nhất trong Machine Learning.

>> Xem thêm: Machine Learning là gì?

Pytorch

Gần đây mình có làm một vài project về Pytorch nên mình muốn chia sẻ kiến thức tới mọi người. Mình sẽ viết chi tiết từ những phần cơ bản nhất của Pytorch như tensor cho đến phần triển khai model đưa ra sử dụng thực tế cho mọi người (deployment). Để cho những người mới chưa sử dụng Pytorch bao giờ cũng có thể hiểu các kiền thức nền tảng của Pytorch, sau đó xây dựng và phát triển ứng dụng với Pytorch.

Ở series Deep Learning cơ bản, mình tập trung vào lý thuyết Deep Learning và code dựa trên Keras. Keras là 1 trong những high-level API framework mà dễ tiếp cận nhất cho người mới bắt đầu. Bằng chứng cho chuyện “tiện” của Keras là Tensorflow bản 2.0 đã tích hợp luôn module Keras vào trong nó. Còn ở series Pytorch lần này, mình tập trung vào giải thích chi tiết cơ chế hoạt động của Pytorch và cách triển khai model Deep Learning ra ngoài thực tế dùng Pytorch.

Nội dung loạt bài viết.

  • Bài 1: Tensor
  • Bài 2: Autograd
  • Bài 3: Neural Network
  • Bài 4: Dataset, DatasetLoader
  • Bài 5: Transfer Learning
  • Bài 6: Lưu và load model trong Pytorch
  • Bài 7: FastAPI
  • Bài 8: Torchserve
  • Bài 9: ONNX, tensorrt, torchscript
  • Bài 10: Pytorch lightning

Code cho series này mọi người lấy ở đây.

Scalping was Hard, until I Found this SECRET
Scalping was Hard, until I Found this SECRET

Tái bản lần thứ hai

Trong quá trình đi dạy và đi làm mình thấy rất nhiều câu hỏi hay về machine learning, deep learning như: L1 và L2 loss khác nhau thế nào, tại sao L1 tốt cho outliers,… Nên mình cập nhật sách để cập nhật các kiến thức cho bạn đọc. Thêm vào đó, qua quá trình dạy mình sẽ sửa sách theo hướng giải thích các kiến thức đơn giản, dễ hiểu hơn cho bạn đọc. Bên cạnh đó, sách vẫn còn những lỗi nhỏ nên mình muốn sửa và cập nhật. Các thay đổi trong lần tái bản thứ hai:

  • Thêm chương GAN.
  • Viết bài sequence to sequence và attention.
  • Viết bài hướng dẫn dùng yolo để detect biển số xe.
  • Thêm phần visualize CNN.
  • So sánh các loss function cho linear regression.
  • Giải linear regression bằng đại số tuyến tính.
  • Viết lại phần python cơ bản.
  • Thêm phần word embedding.
  • Thêm phần batch normalization.
  • Hướng dẫn lưu model trong machine learning dùng numpy.
  • Đọc soát lại và sửa nội dung các phần trong sách.

Generative Adversarial Networks (GAN)

Thời gian qua chắc mọi người đã nghe tới FaceApp hay DeepNude, đó đều là ứng dụng của mạng GAN.

Sau sự thành công của series Deep Learning cơ bản cũng như sách Deep Learning cơ bản, mình tiếp tục muốn giới thiệu tới bạn đọc series về GAN, một nhánh nhỏ trong Deep Learning nhưng đang rất phát triển. Nó như một hướng đi tiếp theo cho những ai đã theo hết series Deep Learning cơ bản.

Series Deep Learning cơ bản giống như cung cấp nền tảng về Deep Learning cho mọi người, còn series này muốn giúp mọi người làm quen với việc đọc paper, đọc code trên github và chạy với custom dataset.

Qua đó hy vọng mọi người dễ tiếp cận hơn với việc nghiên cứu trong môi trường học thuật cũng như đi làm ở công ty về lĩnh vực Machine Learning hay Deep Learning.

Nội dung của loạt bài viết

  • Bài 0: Giới thiệu series GAN (Generative Adversarial Networks)
  • Bài 1: Giới thiệu về GAN
  • Bài 2: Deep Convolutional Generative Adversarial Network (DCGAN)
  • Bài 3: Conditional GAN (cGAN)
  • Bài 4: Least Squares Generative Adversarial Networks (LSGAN)
  • Bài 5: GAN evaluation
  • Bài 6: Image to image translation
  • Bài 7: Pix2pix
  • Bài 8: CycleGAN
  • Bài 9: StarGAN

Code cho series này mọi người ở đây.

All Machine Learning Models Explained in 5 Minutes | Types of ML Models Basics
All Machine Learning Models Explained in 5 Minutes | Types of ML Models Basics

Ưu và nhược điểm của Deep Learning là gì?

Ưu điểm

Deep Learning cho phép các nhà khoa học dữ liệu khác xây dựng nhiều mô hình có độ chính xác cao và là một bước đột phá lớn trong trí tuệ nhân tạo trong nhận dạng hình ảnh, xử lý giọng nói, xử lý ngôn ngữ tự nhiên…

Để biết ưu điểm của Deep Learning là gì, hãy xem phần sau:

  • Kiến trúc của mạng nơ-ron có khả năng thích ứng và có thể dễ dàng sửa đổi để giải quyết một loạt các vấn đề.
  • Có khả năng giải quyết nhiều vấn đề phức tạp với độ chính xác cao.
  • Mức độ tự động hóa, tự điều chỉnh và tự tối ưu hóa cao.
  • Có khả năng tính toán song song, hiệu suất cao và xử lý lượng lớn dữ liệu.

Nhược điểm

Sau khi đã biết ưu điểm của Deep Learning là gì, ta hãy tiếp tục đi tìm hiểu về nhược điểm của học sâu trong phần dưới đây:

  • Để khai thác hết khả năng của Deep Learning, cần phải có một lượng lớn dữ liệu.
  • Do phải xử lý nhiều mô hình phức tạp nên chi phí tính toán cao.
  • Không có nền tảng lý thuyết vững chắc để lựa chọn các công cụ tối ưu Deep Learning tốt nhất.

Kết luận

Rất nhiều bạn đọc có yêu cầu tôi viết về deep learning từ lâu. Tuy nhiên, trước đó tôi tự nhận rằng mình chưa đủ kiến thức về lĩnh vực này để viết cho độc giả. Chỉ khi có những bài cơ bản về machine learning và bản thân đã tích luỹ được một lượng kiến thức nhất định tôi mới quyết định bắt đầu vào chủ đề được nhiều bạn quan tâm này.

Các thuật toán machine learning cổ điển khác vẫn có thể xuất hiện trong các bài sau của blog.

Trí tuệ nhân tạo AI là gì? - AI có thống trị con người không?
Trí tuệ nhân tạo AI là gì? – AI có thống trị con người không?

Giới thiệu

Như đã một lần nhắc đến trong bài đầu tiên của blog, trí tuệ nhân tạo đang len lỏi vào trong cuộc sống và ảnh hưởng sâu rộng tới mỗi chúng ta. Kể từ khi tôi viết bài đầu tiên, tần suất chúng ta nghe thấy các cụm từ ‘artificial intelligence’, ‘machine learning’, ‘deep learning’ cũng ngày một tăng lên. Nguyên nhân chính dẫn đến việc này (và việc ra đời blog này) là sự xuất hiện của deep learning trong 5-6 năm gần đây.

Một lần nữa xin được dùng lại hình vẽ mô tả mối quan hệ giữa artificial intelligence, machine learning, và deep learning:

(Nguồn: What’s the Difference Between Artificial Intelligence, Machine Learning, and Deep Learning?)

Trong bài viết này, tôi sẽ trình bày sơ lược về lịch sử deep learning. Trong các bài tiếp theo, tôi có tham vọng viết thật kỹ về các thành phần cơ bản của các hệ thống deep learning. Xa hơn nữa, blog sẽ có thêm các bài hướng dẫn cho nhiều bài toán thực tế.

Blog luôn đón nhận những đóng góp để chất lượng các bài viết được tốt hơn. Nếu bạn có đóng góp nào, vui lòng để lại trong phần comment, tôi sẽ cập nhật bài viết cho phù hợp. Cảm ơn bạn.

Deep learning cơ bản

Mọi người có bao giờ nghe đến ô tô tự lái; robot phẫu thuật; hệ thống dịch tự động; chatbot tự động trả lời; alphaGo,… Tất cả đều là ứng dụng của Deep learning.

Sau thời gian ấp ủ khá lâu mình xin cho ra mắt series bài viết hướng dẫn về Deep learning cơ bản. Mỗi bài viết sẽ giải thích chi tiết nhưng đơn giản, dễ hiểu cho tất cả mọi người. Nội dung sẽ đi từ lý thuyết đến thực hành và luôn có các ứng dụng thực tế đi kèm.

Sách Deep Learning cơ bản được tổng hợp từ series này. Tuy nhiên nội dung sách được biên soạn cẩn thận hơn so với blog ở các phần sau:

  • Hướng dẫn cài đặt và sử dụng môi trường Anaconda cũng như google colab cho người mới dùng dễ sử dụng hơn.
  • Kiến thức về Python cơ bản.
  • Phần bài tập sau mỗi chương để bạn đọc vận dụng các kiến thức đã học.
  • Nội dung mỗi bài được chỉnh sửa cẩn thận hơn.

Mọi người tải sách ở đây.

Bên cạnh đó mình cũng mở khóa Deep Learning cơ bản dành cho các bạn có kiến thức cơ bản về toán cao cấp và lập trình, muốn học tập và theo đuổi con đường ML/DL/AI.

Nội dung của loạt bài viết

  • Bài 0: Giới thiệu về deep learning
  • Bài 1: Linear regression và gradient descent
  • Bài 2: Logistic regression
  • Bài 3: Neural network
  • Bài 4: Backpropagation
  • Bài 5: Giới thiệu về xử lý ảnh
  • Bài 6: Convolutional neural network
  • Bài 7: Giới thiệu keras và bài toán phân loại ảnh
  • Bài 8: Ứng dụng CNN cho ô tô tự lái
  • Bài 9: Transfer learning và data augmentation
  • Bài 10: Các kĩ thuật cơ bản trong deep learning
  • Bài 11: Object detection với faster-RCNN
  • Bài 12: Image segmentation với U-Net
  • Bài 13: Recurrent neural network
  • Bài 14: Long short term memory
  • Bài 15: Ứng dụng thêm mô tả cho ảnh (image captioning)

Code cho series này mọi người xem ở đây.

Tôi xin tạm dừng các bài viết về Decision Tree để chuyển sang Deep Learning. Tôi sẽ quay lại với các thuật toán Machine Learning cổ điển khi có dịp

Trong trang này:

  • Giới thiệu
  • Những dấu mốc quan trọng của deep learning
  • Điều gì mang đến sự thành công của deep learning?
  • Kết luận
  • Tài liệu tham khảo
Hướng Dẫn Thành Thạo NumPy | Tự Học Data Science #2
Hướng Dẫn Thành Thạo NumPy | Tự Học Data Science #2

Điểm khác biệt giữa Deep Learning và Machine Learning

Machine Learning

Deep Learning

Phụ thuộc dữ liệu Trên một tập dữ liệu nhỏ/vừa, Machine Learning sẽ đem lại hiệu suất tuyệt vời. Trên một tập dữ liệu lớn Deep Learning sẽ đem lại hiệu suất tuyệt vời.
Phụ thuộc phần cứng Hoạt động trên một máy cấp thấp. Yêu cầu máy có cấu hình mạnh mẽ, tốt nhất là với GPU: DL thực hiện một lượng nhân ma trận đáng kể
Kỹ thuật tính năng Các tính năng đại diện cho dữ liệu phải được hiểu. Tính năng tốt nhất đại diện cho dữ liệu không bắt buộc phải hiểu.
Thời gian thực hiện Từ vài phút cho đến vài giờ Có thể lên đến hàng tuần. Lý do là mạng nơ-ron cần tính toán một khối lượng dữ liệu lớn.
Giải thích Một số thuật toán dễ diễn giải (cây quyết định, logistic), một số thuật toán gần như không thể (XGBoost, SVM) Rất khó để giải thích.

Dựa vào bảng trên, tin chắc mọi người đã hiểu rõ điểm khác biệt giữa Machine Learning và Deep Learning là gì rồi. Tuy nhiên để biết Deep Learning có thể được dùng để thay thế Machine Learning không, hãy theo dõi phần dưới đây nhé.

Tài liệu tham khảo

[1] Deep Learning 101 – Part 1: History and Background

[2] autoencoders

[3] CNN Architectures: LeNet, AlexNet, VGG, GoogLeNet, ResNet and more …

[4] A ‘Brief’ History off Neural Nets and Deep Learning

Con đường học PhD của tôi Oct 11, 2018

Con đường học PhD của tôi Oct 11, 2018

Bài 37: Tích chập hai chiều Oct 3, 2018

Bài 37: Tích chập hai chiều Oct 3, 2018

Giới thiệu Diễn đàn Machine Learning cơ bản Sep 11, 2018

Giới thiệu Diễn đàn Machine Learning cơ bản Sep 11, 2018

Bài 36. Giới thiệu về Keras Jul 6, 2018Xem tiếp »

Xem tiếp »

Bài 36. Giới thiệu về Keras Jul 6, 2018Xem tiếp»

Xem tiếp»

Bài 35: Lược sử Deep Learning Jun 22, 2018

Bài 35: Lược sử Deep Learning Jun 22, 2018

Bạn đọc viết: Con đường học Khoa học dữ liệu của một sinh viên Kinh tế Mar 22, 2018

Bạn đọc viết: Con đường học Khoa học dữ liệu của một sinh viên Kinh tế Mar 22, 2018

Bài 34: Decision Trees (1): Iterative Dichotomiser 3 Jan 14, 2018Xem tiếp »

Xem tiếp »

Bài 34: Decision Trees (1): Iterative Dichotomiser 3 Jan 14, 2018Xem tiếp»

Xem tiếp»

Bài 33: Các phương pháp đánh giá một hệ thống phân lớp Jan 3, 2018Xem tiếp »

Xem tiếp »

Bài 33: Các phương pháp đánh giá một hệ thống phân lớp Jan 3, 2018Xem tiếp»

Xem tiếp»

FundaML 3: Làm việc với các mảng ngẫu nhiên Oct 28, 2017Xem tiếp »

Xem tiếp »

FundaML 3: Làm việc với các mảng ngẫu nhiên Oct 28, 2017Xem tiếp»

Xem tiếp»

FundaML 2: Làm việc với ma trận Oct 28, 2017Xem tiếp »

Xem tiếp »

FundaML 2: Làm việc với ma trận Oct 28, 2017Xem tiếp»

Xem tiếp»

Total visits:

Dưới đây là Sách Deep Learning cơ bản – Nguyễn Thanh Tuấn mà mình sưu tầm được. Các bạn nhấn vào nút để tải file về nhé.

Phỏng vấn Ông Em 96 Bách Khoa làm AI Engineer tại akaBot
Phỏng vấn Ông Em 96 Bách Khoa làm AI Engineer tại akaBot

Ứng dụng của Deep Learning là gì?

Xe tự lái

Xe tự lái được xây dựng dựa trên mạng nơ-ron cấp cao, là một trong những công nghệ mới và thú vị nhất hiện nay. Nói cách khác, mô hình Deep Learning sẽ nhận ra các vật thể trong môi trường xung quanh xe, tính toán khoảng cách giữa xe và các phương tiện khác, xác định vị trí làn đường, tín hiệu giao thông,… Điều này dẫn đến các quyết định tốt nhất và nhanh chóng nhất. Tesla hiện là công ty tiên phong trong việc sản xuất ô tô tự lái.

Phân tích cảm xúc

Xử lý ngôn ngữ tự nhiên, phân tích văn bản và thống kê được sử dụng để phân tích cảm xúc của con người trong lĩnh vực này. Khi biết Deep Learning là gì, các công ty có thể sử dụng Deep Learning để hiểu và đánh giá cảm xúc của khách hàng dựa trên các đánh giá, tweet, nhận xét,… từ đó đưa ra các chiến lược kinh doanh và tiếp thị phù hợp với từng nhóm đối tượng.

Trợ lý ảo

Khi tìm hiểu ứng dụng của Deep Learning là gì, ta thấy Cortana, Chatbot, Google Assistant, giảng viên Online, Siri là các trợ lý ảo phổ biến được sử dụng rộng rãi trong cuộc sống hàng ngày. Các thuật toán Deep Learning cơ bản được sử dụng để nhận dạng văn bản, xây dựng trợ lý ảo, nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên và các ứng dụng khác.

Mạng xã hội

Các thuật toán Deep Learning cũng được sử dụng bởi một số nền tảng mạng xã hội lớn, chẳng hạn như Twitter, để cải thiện dịch vụ của họ. Các trang web này sẽ phân tích cụ thể một lượng lớn dữ liệu bằng cách sử dụng mạng nơ-ron nhân tạo để tìm hiểu về sở thích của người dùng.

Ngoài ra, biết được ưu điểm của Deep Learning là gì, Instagram cũng đã sử dụng Deep Learning cơ bản để ngăn chặn các hành vi bạo lực trong không gian mạng, cũng như chặn các bình luận xúc phạm hoặc không phù hợp. Facebook cũng nằm trong danh sách các mạng xã hội sử dụng Deep Learning trong các sản phẩm của họ.

Các thuật toán mạng thần kinh sâu được sử dụng để giới thiệu các trang web, dịch vụ, bạn bè và để nhận dạng khuôn mặt, cùng những thứ khác.

Chăm sóc sức khỏe

Trong chăm sóc sức khỏe, ứng dụng nổi bật của Deep Learning là gì? Đó là nó cũng đã có những đóng góp đáng kể cho lĩnh vực y tế, nơi các mô hình phổ biến bao gồm mô hình dự đoán bệnh tật, phân tích kết quả MRI, chẩn đoán ung thư và X-quang,… để hỗ trợ điều trị cho nhiều người bệnh.

Có thể nói, với những ưu điểm nổi trội của mình, Deep Learning đang dần được ứng dụng nhiều hơn vào các ngành khác nhau.

Cách thức hoạt động của Deep Learning

Cách thức hoạt động, vận hành của Deep Learning là gì? Đó là sử dụng mạng lưới nơ-ron nhân tạo để mô phỏng khả năng tư duy của bộ não con người. Một mạng nơ-ron được tạo thành từ nhiều lớp khác nhau, càng có nhiều lớp, mạng càng “sâu”. Mỗi lớp chứa các node (nút) được liên kết với các lớp khác liền kề nó.

Mỗi kết nối node sẽ được gán một trọng số, trọng số càng cao thì ảnh hưởng của kết nối này đối với mạng nơ-ron càng lớn. Mỗi nơ-ron sẽ có một hàm đảm nhiệm chức năng kích hoạt, đầu ra từ nơ-ron này có nhiệm vụ “chuẩn hóa”.

Dữ liệu sau khi được người dùng nhập vào mạng nơ-ron trước khi trả về kết quả trong lớp cuối cùng sẽ đi qua tất cả các lớp, được gọi là Output Layer. Các trọng số sẽ được thay đổi trong quá trình huấn luyện, và nhiệm vụ của mô hình sẽ là tìm ra tập hợp các giá trị trọng số tạo ra để phán đoán là tốt nhất.

Hệ thống học sâu yêu cầu phần cứng cực kỳ mạnh mẽ để xử lý một lượng lớn dữ liệu và thực hiện các phép tính phức tạp. Trên phần cứng tiên tiến nhất hiện nay, nhiều mô hình học sâu có thể mất vài tuần hoặc thậm chí vài tháng để triển khai.

Lộ trình tự học toán cho dân AI #machinelearning #datascience
Lộ trình tự học toán cho dân AI #machinelearning #datascience

Sử dụng Deep Learning thay thế cho Machine Learning được không?

Mặc dù có hiệu suất và độ chính xác vượt trội do kết quả của nhiều mô hình phức tạp và nguồn dữ liệu khổng lồ, nhưng Deep Learning không phải lúc nào cũng là lựa chọn tốt nhất cho các vấn đề về trí tuệ nhân tạo và máy học.

Quyết định sử dụng Deep Learning hay không bị ảnh hưởng nhiều bởi các mục tiêu và chiến lược kinh doanh cụ thể, cũng như lượng tài nguyên, dữ liệu… Do đó, cần có các yếu nên được xem xét trước khi sử dụng các mô hình.

Sau khi đã hiểu rõ đặc điểm của Machine Learning và Deep Learning là gì, nếu bạn muốn biết Deep Learning thay thế cho Machine Learning được không, hãy theo dõi phần dưới đây:

Mục tiêu và độ phức tạp của dự án

Khả năng giải quyết các vấn đề phức tạp, phân tích và tìm hiểu các mối quan hệ ẩn trong dữ liệu của Deep Learning cơ bản là một trong những lợi thế quan trọng nhất của nó. Ưu điểm của Deep Learning là đặc biệt hữu ích khi xử lý một lượng lớn dữ liệu phi cấu trúc, chẳng hạn như nhận dạng giọng nói, phân loại hình ảnh, xử lý các ngôn ngữ tự nhiên,…

Nếu bạn hiểu Deep Learning là gì và Machine Learning là gì, bạn sẽ thấy các thuật toán Machine Learning sẽ là một lựa chọn hợp lý hơn cho các vấn đề phức tạp vừa phải, không yêu cầu tính toán nặng nề, ít tài nguyên và dữ liệu…

Tài nguyên

Sự bùng nổ dữ liệu gần đây đã giúp việc xây dựng các mô hình học sâu trở nên dễ dàng hơn. Tuy nhiên, đây vẫn là một lĩnh vực rất phức tạp và tốn kém. Các mô hình Deep Learning cơ bản thường dựa nhiều vào tài nguyên tính toán và GPU để đạt được hiệu suất tốt nhất vì chúng phải xử lý lượng dữ liệu cực lớn.

Vì vậy cho dù biết những lợi ích của Deep Learning là gì, bạn cũng khó khai thác được nó. Mặt khác, các thuật toán máy học cổ điển chỉ yêu cầu CPU và phần cứng vừa phải, nhanh hơn về tốc độ và có thể dễ dàng kiểm tra nhiều kỹ thuật và mô hình khác nhau mà không cần quan tâm đến tài nguyên hoặc thời gian tính toán.

Số lượng dữ liệu

Các thuật toán Deep Learning có thể phát hiện ra các mẫu ẩn trong tập dữ liệu. Tuy nhiên, điều này ngụ ý rằng lượng dữ liệu đầu vào (dữ liệu được gắn nhãn) phải lớn hơn nhiều so với yêu cầu của các thuật toán Học máy.

Việc ghi nhãn dữ liệu cũng cần nguồn lực và thời gian đáng kể, đặc biệt là trong lĩnh vực y tế, nơi việc ghi nhãn dữ liệu chính xác đòi hỏi trình độ chuyên môn cao. Trong những trường hợp này, các thuật toán Machine Learning truyền thống có thể được sử dụng thay vì Deep Learning.

Có thể thấy tùy thuộc vào mục đích sử dụng Deep Learning là gì, bạn nên cân nhắc kỹ trước khi sử dụng nó để thay thế Machine Learning.

Keywords searched by users: deep learning co ban

Ebook Machine Learning Cơ Bản (Pdf) - Technology Diver
Ebook Machine Learning Cơ Bản (Pdf) – Technology Diver
Deep Learning Cơ Bản] Thao Tác Với Pytorch (Phần 1) - Youtube
Deep Learning Cơ Bản] Thao Tác Với Pytorch (Phần 1) – Youtube
Deep Learning Là Gì? Tìm Hiểu Về Deep Learning Từ A-Z
Deep Learning Là Gì? Tìm Hiểu Về Deep Learning Từ A-Z
Deep Learning Là Gì? 9 Thuật Toán Cơ Bản Của Deep Learning
Deep Learning Là Gì? 9 Thuật Toán Cơ Bản Của Deep Learning
Deep Learning Là Gì? Tìm Hiểu Về Deep Learning Từ A-Z
Deep Learning Là Gì? Tìm Hiểu Về Deep Learning Từ A-Z
Deep Learning – Hiểu Sao Cho Đúng? - Fibo.Vn
Deep Learning – Hiểu Sao Cho Đúng? – Fibo.Vn
Deep Learning Là Gì? Ưu Điểm Và Lợi Thế - W3Seo Tìm Hiểu Cơ Bản
Deep Learning Là Gì? Ưu Điểm Và Lợi Thế – W3Seo Tìm Hiểu Cơ Bản
Mua Machine Learning Cơ Bản | Tiki
Mua Machine Learning Cơ Bản | Tiki
Machine Learning Là Gì? | Topdev
Machine Learning Là Gì? | Topdev
Cơ Bản Về Deep Learning (Ii)
Cơ Bản Về Deep Learning (Ii)
Giới Thiệu Về Deep Learning, Deep Learning Hoạt Động Như Thế Nào?
Giới Thiệu Về Deep Learning, Deep Learning Hoạt Động Như Thế Nào?
Sự Khác Biệt Giữa Ai, Machine Learning Và Deep Learning
Sự Khác Biệt Giữa Ai, Machine Learning Và Deep Learning
Deep Learning - Cuộc Cách Mạng Học Sâu - Terrence J. Sejnowski | Netabooks
Deep Learning – Cuộc Cách Mạng Học Sâu – Terrence J. Sejnowski | Netabooks
Deep Learning – Hiểu Sao Cho Đúng? - Fibo.Vn
Deep Learning – Hiểu Sao Cho Đúng? – Fibo.Vn
Tài Liệu Machine Learning Cơ Bản Cho Người Mới Bắt Đầu – Luyện Code
Tài Liệu Machine Learning Cơ Bản Cho Người Mới Bắt Đầu – Luyện Code
Deep Learning Cơ Bản - Thư Viện Pdf
Deep Learning Cơ Bản – Thư Viện Pdf
Những Thuật Toán Deep Learning Cần Biết - Quantrimang.Com
Những Thuật Toán Deep Learning Cần Biết – Quantrimang.Com
Code Learn
Code Learn
Machine Learning Và Deep Learning: Sự Khác Biệt Là Gì?
Machine Learning Và Deep Learning: Sự Khác Biệt Là Gì?
How To – Deep Learning Co Ban
How To – Deep Learning Co Ban

See more here: kientrucannam.vn

Leave a Reply

Your email address will not be published. Required fields are marked *