Xin chào và chào mừng bạn đến với hướng dẫn Python này.
Bây giờ chúng ta phải xác định năm biến của hàm init này.
Đó là ba chập và hai kết nối đầy đủ.
Vì vậy, hãy bắt đầu với cái đầu tiên.
Convolution một áp dụng tích chập cho các hình ảnh đầu vào.
Vì vậy, đó là những hình ảnh ban đầu.
Và bây giờ bạn sẽ thấy mọi thứ sẽ trở nên đơn giản như thế nào để tạo ra tích chập này.
Chà, những gì chúng ta phải làm thực sự là tạo một đối tượng của một số lớp cụ thể, và lớp này
được lấy từ một RN và sau đó các lớp có thể.
Để DH.
Bởi vì chúng tôi đang làm việc với hai hình ảnh DH.
Và bây giờ, như bạn có thể thấy, chúng ta cần nhập một số đối số.
Đầu tiên là trong các kênh, vì vậy hãy đặt nó vào các kênh.
Cái thứ hai là ra khỏi các kênh.
Cái thứ ba là kích thước hạt nhân và phần còn lại của chúng bị phá hủy, độn các nhóm giãn nở và độ lệch.
Và chúng tôi có các giá trị mặc định cho tất cả những giá trị này.
Vì vậy, chúng tôi sẽ không nhập chúng.
Chúng tôi sẽ giữ các giá trị mặc định.
Nhưng điều quan trọng là ba đối số này trong kênh, kênh thay thế và kích thước cột.
Và bạn có đoán chúng tương ứng với những gì không?
Vâng, rất đơn giản trong các kênh tương ứng với đầu vào của tích chập và các kênh alt tương
ứng với đầu ra của tích chập.
Vậy trong các kênh, nó sẽ như thế nào?
Rất đơn giản, đó sẽ là số kênh trong hình ảnh của chúng tôi.
Và trên thực tế, chúng tôi sẽ làm việc với hình ảnh đen trắng vì về cơ bản chúng tôi không cần màu sắc
để nhận ra những con quái vật.
AI hoàn toàn có khả năng nhận dạng những con quái vật bằng màu đen và trắng, vì vậy chúng ta không cần màu sắc.
Nó sẽ chỉ nhận ra chúng bằng hình dạng của chúng và do đó chúng tôi sẽ sử dụng một kênh.
Vì vậy, một kênh là khi bạn có hình ảnh đen trắng và ba kênh là khi bạn có hình ảnh màu.
Và do đó, vì chúng tôi đang làm việc với hình ảnh đen trắng trong các kênh sẽ bằng
một.
Sau đó, các kênh của chúng tôi.
Vì vậy, các kênh của chúng tôi sẽ bằng với các hình ảnh bạn muốn có trong lớp tích chập, là
đầu ra của lớp tích chập này.
Và về cơ bản, con số này bằng với số lượng tính năng bạn muốn phát hiện trong hình ảnh gốc của mình, bởi vì chúng tôi sẽ
tạo một hình ảnh cho mỗi tính năng mà chúng tôi muốn phát hiện vì về cơ bản, bạn biết nó hoạt động như thế nào.
Chúng tôi áp dụng một bộ dò tính năng cho hình ảnh đầu vào để phát hiện một tính năng cụ thể trong hình ảnh đầu vào và do đó
là số lượng hình ảnh đầu ra.
Đây là số lượng tính năng chúng tôi muốn phát hiện.
Vì vậy, bây giờ câu hỏi là chúng ta muốn phát hiện bao nhiêu tính năng?
Thực tế phổ biến là bắt đầu với 32 bộ phát hiện tính năng.
Và điều đó sẽ dẫn chúng ta đến 32 hình ảnh được xử lý trong lớp phức hợp đầu tiên này.
Vì vậy, đầu vào là một hình ảnh đen trắng, một hình ảnh thực.
Và đầu ra trong lớp chập đầu tiên là 32 hình ảnh đã được xử lý.
Và bằng cách xử lý, tất nhiên ý tôi là phép tích chập được áp dụng cho hình ảnh đầu vào để có được 32 hình ảnh
mới với các tính năng được phát hiện.
Và sau đó chúng ta cần chỉ định kích thước hạt nhân, không có gì khác ngoài kích thước của hình
vuông sẽ đi qua hình ảnh ban đầu.
Và trong thực tế phổ biến, chúng tôi sử dụng hai x hai hoặc ba x ba hoặc năm x năm, và đối với cái
đầu tiên, chúng tôi sẽ sử dụng bộ dò tính năng 5 x 5.
Đó là một máy dò tính năng sẽ có 5 x 5 chiều.
Và sau đó chúng ta sẽ giảm kích thước của nhân này cho các lớp tích chập tiếp theo.
Và nói về nó, đây chính xác là những gì chúng ta sẽ làm bây giờ.
Chúng tôi sẽ sao chép điều này để xác định tích chập thứ hai.
Và do đó, tôi đang căn cứ điều đó ở đây và bây giờ.
Nó rất buồn cười và rất dễ dàng.
Nó giống như một quân cờ domino.
Kênh đầu vào của lớp chập thứ hai là kênh đầu ra của lớp chập đầu
tiên.
Vì vậy, số lượng đầu ra 32 ở đây chính là số lượng đầu vào 32 ở đây.
Và đó là bởi vì chúng ta có 32 hình ảnh trong lớp tích chập đầu vào của tích chập thứ hai này.
Và do đó, tích chập thứ hai được áp dụng cho lớp tích chập thứ hai này để trả về lớp tích chập thứ
ba.
Và bây giờ câu hỏi là chúng ta muốn có bao nhiêu hình ảnh mới trong khi cùng một hình ảnh, hãy tạo 32 hình ảnh mới.
32 thực sự là một con số rất phổ biến trong mạng nơ-ron tích tụ.
Nếu bạn nhìn vào các kiến trúc, bạn sẽ tìm thấy 32 trong số đó.
Và đối với phía hạt nhân, chúng ta cần giảm kích thước hạt nhân, đó là kích thước của bộ phát hiện tính
năng của chúng ta.
Và bây giờ chúng ta sẽ đi từ con mắt năm đến con mắt của bốn hoặc thậm chí ba con mắt, và sau đó chúng tôi sẽ đi nhỏ hơn nữa.
Được rồi.
Vì vậy, tích chập thứ hai của chúng tôi đã sẵn sàng.
Nó lấy làm đầu vào, 32 hình ảnh được xử lý, mỗi hình ảnh phát hiện một đặc điểm đầu tiên của hình ảnh đầu
vào gốc.
Và nó tạo ra 32 hình ảnh mới nhờ vào việc giảm kích thước này của bộ dò tính năng.
Và vì vậy bây giờ chúng ta hãy thúc đẩy điều này nhiều hơn nữa.
Vì vậy, tôi đang sao chép cái này và dán cái đó vào đây để tạo một phép chập thứ ba nhằm phát hiện một số tính năng.
Và bây giờ đó là các kênh đầu vào giống nhau.
Đây là số hình ảnh đầu vào ở bên trái của kết nối chập và đó là số hình
ảnh đã xử lý ở bên phải của kết nối chập trước đó.
Vì vậy, đó là 32.
Do đó chúng tôi giữ 32 ở đây.
Thật hoàn hảo.
Và bây giờ câu hỏi đặt ra là chúng ta muốn phát hiện bao nhiêu hình ảnh mới?
Bây giờ chúng tôi sẽ lấy 64 trong đó cho 64 đầu ra, hình ảnh đã xử lý.
Và tất nhiên, bây giờ chúng ta lấy kích thước hạt nhân nhỏ hơn và chúng ta sẽ lấy hai.
Và đó là một kiến trúc rất cổ điển của một lớp phức hợp và rất hiệu quả khi có mức
độ phát hiện tính năng cao bên trong hình ảnh.
Được rồi.
Và bây giờ chúng ta đã có ba lớp tích chập của mình, nhờ ba kết nối tích chập của chúng ta ở đây, tốt, bây giờ
là lúc để có được hai kết nối đầy đủ của chúng ta mà tôi nhắc nhở.
Chúng ta sẽ lấy vectơ khổng lồ này mà chúng ta thu được sau khi làm phẳng tất cả 64 lần, 32 lần 32.
Một lần nữa, những hình ảnh mà chúng tôi nhận được từ tất cả những sự phức tạp này.
Vì vậy, chúng tôi đã làm phẳng tất cả các pixel của những hình ảnh này và chúng tôi có thể có một vectơ khổng lồ sẽ trở thành
đầu vào của một mạng nơ-ron mới được kết nối đầy đủ.
Và đó là lúc chúng ta phải tạo các kết nối đầy đủ này giữa đầu tiên là vectơ khổng lồ này và
một lớp ẩn, sau đó là kết nối đầy đủ thứ hai giữa lớp ẩn và lớp đầu ra bao gồm các nơ-ron đầu
ra, mỗi nơ-ron tương ứng với một giá trị q của giá trị có thể các hành động.
Vì vậy, chúng ta hãy tạo ra hai kết nối đầy đủ này.
Bạn biết làm thế nào để làm điều đó.
Đó chính xác là những gì chúng tôi đã làm cho xe tự lái.
Vì vậy, chúng ta hãy làm điều đó một lần nữa.
Vâng, đầu tiên chúng ta lấy mô-đun RN của mình, sau đó chúng ta lấy lớp tuyến tính bởi vì một lần nữa, kết nối đầy đủ mà chúng ta
tạo là một đối tượng của lớp tuyến tính.
Và sau đó trong dấu ngoặc đơn, tốt, điều đó đầu tiên giống nhau.
Nhập các tính năng đầu vào, đó là số lượng của chúng sau đó là các tính năng đầu ra.
Và các tính năng đầu vào cho kết nối đầy đủ đầu tiên, nó sẽ như thế nào?
Chà, con số đó sẽ bằng số pixel có và vectơ khổng lồ này thu được sau khi làm phẳng tất
cả các hình ảnh được xử lý sau ba lần chập.
Và vậy con số này là bao nhiêu?
Thực ra, có một mẹo nhỏ ở đây.
Con số này thực sự khó có được.
Chúng ta thực sự cần tạo một hàm để tính toán con số đó.
Chúng tôi không có một biến số sẽ cho chúng tôi con số này.
Chúng tôi phải tính toán nó.
Và do đó, những gì chúng ta sẽ làm bây giờ và bây giờ, điều rất quan trọng là phải hiểu tư duy lập trình
mà chúng ta phải có.
Tôi đang cố gắng đưa ra suy nghĩ rằng đó là điều bạn phải nghĩ ngay bây giờ để làm gì để vượt qua trở
ngại này.
Bởi vì lần đầu tiên bạn có thể nói, Này, tôi không có số lượng tế bào thần kinh này trong vectơ dẹt,
tôi phải làm gì?
Tôi bị kẹt ở đây.
Thực ra thì không, bởi vì những gì bạn có thể làm bây giờ chỉ đơn giản là nhập bất kỳ tên nào ở đây sẽ đại diện cho số lượng
tế bào thần kinh này.
Vì vậy, tôi gọi nó là số tế bào thần kinh.
Số lượng tế bào thần kinh.
Và sau đó chúng ta sẽ tạo một hàm sẽ trả về số lượng biến nơ-ron này, số lượng pixel mà chúng
ta đang tìm kiếm.
Vì vậy chúng ta hoàn toàn có thể làm được điều đó.
Chúng ta hoàn toàn có thể đặt biến này.
Tất nhiên, chúng tôi sẽ nhận được cảnh báo vì nó chưa tồn tại, nhưng chúng tôi sẽ tạo nó sau đó
với hàm và chúng tôi hoàn toàn được phép làm điều đó ngay cả khi hàm xuất hiện sau đó.
Vì vậy, đó là một tư duy lập trình điển hình mà bạn phải có khi gặp phải trở ngại đó.
Chà, bạn có thể tạo một hàm để lấy những gì bạn đang thiếu.
Được rồi.
Và sau đó loại bỏ các tính năng và loại bỏ các tính năng, đó là số lượng tế bào thần kinh trong lớp ẩn và thời gian
này là tùy thuộc vào bạn.
Điều đó phụ thuộc vào kiến trúc của mạng nơ-ron mà bạn muốn tạo.
Và do đó, một con số tốt sẽ là một con số nhỏ.
Vì vậy, ví dụ, 40 tế bào thần kinh có thể ổn.
Chúng tôi có thể cố gắng tăng nó.
Nếu quá trình luyện tập không quá chậm, bạn có thể cố gắng tăng lên.
Có thể điều đó sẽ cải thiện các dự đoán.
Nhưng hãy bắt đầu với 40.
Có lẽ chúng tôi sẽ tăng điều đó sau đó.
Được rồi.
Vì vậy, đó là nó cho kết nối đầy đủ đầu tiên.
Sau đó, chúng tôi sẽ sao chép trang này xuống đây cho kết nối đầy đủ thứ hai.
Đó là kết nối giữa lớp ẩn và lớp xuất.
Và do đó, các tính năng bên trong ở đây trở thành các tính năng bên ngoài của lớp trước và đó là 40.
Vì vậy, ở đây chúng tôi đặt 40.
Tất nhiên đó là số lượng tế bào thần kinh trong lớp ẩn và các tính năng của chúng ta ở đây sẽ
bằng số lượng tế bào thần kinh đầu ra cần có trong mạng thần kinh của chúng ta.
Và vì mỗi nơ-ron đầu ra tương ứng với một giá trị khóa và một giá trị khóa tương ứng với một hành động,
nên số lượng nơ-ron đầu ra ở đây tất nhiên là số hành động.
Và chúng tôi có một biến cho điều này, đó là các hành động số.
Và do đó ở đây chúng tôi nhập số.
Các hành động.
Và chúng ta bắt đầu.
Xin chúc mừng.
Chúng tôi đã xác định kiến trúc của mạng nơ-ron của chúng tôi.
Mạng nơ-ron của chúng tôi bao gồm ba lớp chập và một lớp ẩn.
Tất cả điều này trong một CNN lớn và điều này.
CNN sẽ phát hiện các tính năng trong trò chơi để AI biết nó phải làm gì, phải đi
đâu và cần quay ở đâu.
Vì vậy, chúng ta bắt đầu bước này.
Đó là bước đầu tiên rất quan trọng được thực hiện.
Bây giờ chúng ta sẽ chuyển sang bước tiếp theo, tất nhiên là lấy số lượng tế bào thần kinh vẫn
còn thiếu này.
Đó thực sự là lý do tại sao chúng tôi có cảnh báo ở đây.
Không xác định tên số lượng tế bào thần kinh, nhưng đừng lo lắng.
Bây giờ chúng ta sẽ tạo một hàm sẽ trả về số lượng nơ-ron trong vectơ khổng lồ này, và chúng ta
sẽ đặt số đó vào một biến mà chúng ta gọi là nơ-ron số.
Vì vậy, chúng ta hãy làm điều này trong hướng dẫn tiếp theo.
Đó là bước tiếp theo của chúng tôi.
Và cho đến khi đó, hãy tận hưởng.
TÔI.