Hình 2 .8 Convolutional layer và Transposed convolutional layer
Hình 2. 10 Mơ hình discriminator của DC-GAN
Mơ hình discriminator đối xứng lại với mơ hình generator. Ảnh input đƣợc đi qua convolution với stride = 2 để giảm kích thƣớc ảnh từ 32*32 -> 16*16 -> 8*8 -> 4*4 -> 2*2. Khi giảm kích thƣớc thì depth tăng dần. Cuối cùng thì tensor shape 2*2*512 đƣợc reshape về vector 2048 và dùng 1 lớp fully connected chuyển từ 2048d về 1d.
2.3. Mơ hình Convolutional Neural Netword ( CNN )
Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trong những mơ hình Deep Learning tiên tiến. Nó giúp cho chúng ta xây dựng đƣợc những hệ thống thông minh với độ chính xác cao nhƣ hiện nay. CNN đƣợc sử dụng nhiều trong các bài toán nhận dạng các object trong ảnh.
CNN cũng có lịch sử khá lâu đời. Kiến trúc gốc của mơ hình CNN đƣợc giới thiệu bởi một nhà khoa học máy tính ngƣời Nhật vào năm 1980. Sau đó, năm 1998, Yan LeCun lần đầu huấn luyện mơ hình CNN với thuật tốn backpropagation cho bài toán nhận dạng chữ viết tay. Tuy nhiên, mãi đến năm 2012, khi một nhà khoa học máy tính ngƣời Ukraine Alex Krizhevsky (đệ của Geoffrey Hinton) xây dựng mô hình CNN (AlexNet) và sử dụng GPU để tăng tốc quá trình huấn luyện deep nets để đạt đƣợc top 1 trong cuộc thi Computer Vision thƣờng niên ImageNet với độ lỗi phân lớp top 5 giảm hơn 10% so với những mơ hình truyền thống trƣớc đó, đã tạo nên làn sóng mạnh mẽ sử dụng deep CNN
27 với sự hỗ trợ của GPU để giải quyết càng nhiều các vấn đề trong Computer Vision.
2.3.1. Khái niệm Convolutional
Là một cửa sổ trƣợt (Sliding Windows) trên một ma trận.
Các convolutional layer có các parameter(kernel) đã đƣợc học để tự điều chỉnh lấy ra những thơng tin chính xác nhất mà khơng cần chọn các feature.
Trong hình ảnh ví dụ trên, ma trận bên trái là một hình ảnh trắng đen đƣợc số hóa. Ma trận có kích thƣớc 5×5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dịng và cột.
Convolution hay tích chập là nhân từng phần tử trong ma trận 3. Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận có kích thƣớc nhỏ nhƣ trong ví dụ trên là 3×3.
Convolution hay tích chập là nhân từng phần tử bên trong ma trận 3×3 với ma trận bên trái. Kết quả đƣợc một ma trận gọi là Convoled feature đƣợc sinh ra từ việc nhận ma trận Filter với ma trận ảnh 5×5 bên trái.
2.3.2. Cấu trúc mạng CNN
Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng hàm nonlinear activation nhƣ ReLU để kích hoạt các trọng số trong các node. Mỗi một lớp sau khi thơng qua các hàm kích hoạt sẽ tạo ra các thơng tin trừu tƣợng hơn cho các lớp tiếp theo.
Mỗi một lớp sau khi thơng qua các hàm kích hoạt sẽ tạo ra các thơng tin trừu tƣợng hơn cho các lớp tiếp theo. Trong mơ hình mạng truyền ngƣợc (feedforward neural network) thì mỗi neural đầu vào (input node) cho mỗi neural đầu ra trong các lớp tiếp