Xin chào và chào mừng bạn đến với hướng dẫn Python này.
Được rồi, vì vậy trong phần mã mới này, chúng tôi sẽ triển khai tính năng phát lại trải nghiệm.
Vì vậy, chúng tôi sẽ tạo một lớp mới, mà chúng tôi sẽ gọi là bộ nhớ phát lại và điều đó sẽ triển khai trải nghiệm, phát lại
chính xác như bạn đã thấy trong các bài giảng về trực giác.
Nhưng trước tiên, hãy đưa ra lời nhắc nhanh về những gì đã trải qua khi chơi lại.
Vì vậy, bạn biết đấy, tất cả trí thông minh nhân tạo này đều dựa trên các quy trình quyết định của Markov.
Và các quy trình ra quyết định của Markov bao gồm việc xem xét một loạt các sự kiện.
Vì vậy, các sự kiện, ví dụ, đi từ một trạng thái S-T sang trạng thái tiếp theo là T cộng với một.
Nhưng nếu các sự kiện diễn ra như vậy, thì, vì trạng thái tiếp theo rất tương quan với trạng thái hiện tại,
thì mạng sẽ không hoạt động tốt cho lắm.
Vì vậy, đối với những người đến từ khóa học học sâu, điều đó giống hệt như nơi chúng tôi học chuỗi thời
gian của mình chỉ với một bước thời gian.
Nó không phải là học bất cứ điều gì bởi vì một bước thời gian không đủ để mô hình của chúng
tôi học để hiểu các mối tương quan lâu dài.
Vì vậy, ở đây cũng vậy, và đó là lý do tại sao chúng tôi phải triển khai tính năng phát lại trải nghiệm.
Vì vậy, làm thế nào nó hoạt động?
Chà, điều đó rất đơn giản.
Thay vì chỉ xem xét các trạng thái hiện tại, đó chỉ là một trạng thái tại một thời điểm.
T Chúng tôi sẽ xem xét nhiều hơn trong quá khứ, vì vậy chính xác là đối với ít TMS hơn và do đó chuỗi sự kiện
của chúng tôi sẽ không phải là SD và SD cộng một.
Ví dụ, đây sẽ là 100 tiểu bang trong quá khứ.
Vì vậy, T -100 như T -99 đến C trừ đi một và sau đó là T.
Vì vậy, nói cách khác, chúng ta đặt 100 lần chuyển đổi ít hơn vào cái mà chúng ta gọi là bộ nhớ, và đó là nơi chúng
ta có trí nhớ dài hạn trái ngược với trí nhớ ngắn hạn hoặc thậm chí, tôi nên nói, một trí nhớ tức thì.
Và điều đó làm cho toàn bộ quá trình học sâu hoạt động tốt hơn nhiều.
Và sau khi tạo bộ nhớ này về 100 sự kiện cuối cùng, chúng tôi sẽ lấy mẫu, tức là, chúng tôi sẽ lấy một số lô
ngẫu nhiên của các chuyển đổi này để thực hiện cập nhật tiếp theo của chúng tôi.
Đó là bước tiếp theo của chúng tôi bằng cách chọn hành động tiếp theo.
Và do đó, trong lớp bộ nhớ phát lại này mà chúng tôi đang triển khai để phát lại trải nghiệm, chúng tôi
sẽ tạo ba hàm.
Trước hết, chức năng init như bình thường.
Đó là trường hợp của bất kỳ lớp nào.
Và vì vậy trong hàm init này, chúng ta sẽ xác định các biến sẽ được gắn vào các thể hiện tương lai của
lớp, đó là các đối tượng trong tương lai sẽ được tạo từ lớp này.
Và rất đơn giản, các biến này sẽ là bộ nhớ của 100 lần chuyển đổi thành 100 sự kiện và
dung lượng là số 100 mà bạn sẽ được chào đón để thử một bộ nhớ dài hơn bằng cách tăng dung lượng.
Vì vậy, đó là chức năng đầu tiên trong chức năng.
Và sau đó chúng ta sẽ thực hiện hai chức năng khác, một chức năng đẩy để đảm bảo rằng bộ nhớ không
bao giờ chứa nhiều hơn 100 chuyển tiếp.
Và đối với điều này, chúng tôi sẽ sử dụng dung lượng bằng cách chỉ thực hiện một điều kiện if đơn giản, và sau đó
cuối cùng chúng tôi sẽ tạo ra hàm mẫu.
Và đó tất nhiên sẽ là để lấy mẫu một số quá trình chuyển đổi trong bộ nhớ 100 lần chuyển đổi cuối cùng này.
Được rồi.
Vì vậy, hãy bắt đầu bằng cách giới thiệu lớp học.
Vì vậy, như thường lệ, chúng tôi bắt đầu với lớp và sau đó chúng tôi đặt tên cho lớp.
Vì vậy, chúng tôi gọi nó là bộ nhớ phát lại.
Và sau đó trong ngoặc đơn, chúng ta nhập đối tượng, sau đó là cột, và sau đó chúng ta bắt đầu.
Chúng ta bắt đầu với hàm đầu tiên, hàm init.
Vì vậy, điều đó giống hệt như trước khi chúng ta bắt đầu với cái chết.
Sau đó để gạch dưới nó, để gạch dưới một lần nữa và sau đó là các biến.
Vì vậy, tất nhiên có self là biến được gắn với các thể hiện tương lai của lớp, các đối
tượng tương lai.
Và sau đó chúng tôi sẽ có một biến khác để bạn có thể thử một số trải nghiệm khác, thay thế
một số ký ức khác, và đó sẽ là dung lượng.
Vì vậy, dung lượng này sẽ đơn giản là con số 100 vì chúng tôi sẽ thực hiện phát lại trải nghiệm
với 100 lần chuyển đổi cuối cùng.
Được rồi.
Và sau đó là Colin và chúng ta bắt đầu.
Hãy vào bên trong hàm và xác định các biến của các đối tượng bộ nhớ phát lại của chúng ta.
Vì vậy, cái đầu tiên sẽ là dung lượng tự chấm.
Và như bạn có thể đã hiểu, đây sẽ là dung lượng là số lượng chuyển đổi tối đa mà chúng ta muốn có trong
bộ nhớ của chúng ta về các sự kiện.
Và điều này sẽ bằng đối số mà chúng ta sẽ nhập khi tạo một đối tượng của lớp bộ nhớ phát
lại, và do đó đó là dung lượng.
Đó là đối số của hàm init.
Vì vậy, công suất.
Vì vậy, không nên nhầm lẫn, năng lực bản thân là tên của biến số gắn liền với đối tượng và
năng lực.
Đây là đối số mà chúng ta sẽ nhập khi tạo một đối tượng của lớp bộ nhớ phát lại.
Được rồi.
Và sau đó chúng ta có một biến thứ hai.
Đó tất nhiên là ký ức.
Vì vậy, tự chấm bộ nhớ.
Được rồi.
Và như vậy biến bộ nhớ này sẽ có giá trị như thế nào?
Chà, bộ nhớ này được cho là chứa 100 sự kiện cuối cùng, và do đó, đây phải là một danh sách đơn giản, bạn
biết đấy, một danh sách sẽ chứa 100 sự kiện cuối cùng, 100 lần chuyển đổi cuối cùng.
Và để khởi tạo danh sách, không có gì đơn giản hơn.
Chúng tôi chỉ thêm một số dấu ngoặc như vậy và chúng tôi bắt đầu.
Bộ nhớ của chúng tôi được khởi tạo.
Vì vậy, tất nhiên, khi bắt đầu thử nghiệm, hay chính xác hơn là khi bắt đầu khám phá, bộ nhớ
sẽ là một danh sách trống.
Và sau đó chúng tôi sẽ đặt các chuyển đổi mỗi khi chúng tôi đạt đến trạng thái trong tương lai.
Và nói về điều đó, đó chính xác là những gì chúng ta sẽ làm với hàm tiếp theo mà chúng ta
sẽ gọi là hàm push.
Chúng tôi sẽ thực hiện chức năng đẩy này để nối các sự kiện trong danh sách bộ nhớ này.
Và sau đó chúng ta sẽ sử dụng dung lượng để đảm bảo rằng danh sách bộ nhớ này luôn chứa 100 sự kiện và không bao giờ nhiều hơn
thế.
Được rồi, hãy làm điều này trong hướng dẫn tiếp theo.
Và cho đến khi đó, hãy tận hưởng.
TÔI.