Làm cách nào để tính số lượng tham số trong mạng nơ ron nhân tạo để tính AIC của nó?
classifier.summary()
từ sklear
lớp.
Làm cách nào để tính số lượng tham số trong mạng nơ ron nhân tạo để tính AIC của nó?
classifier.summary()
từ sklear
lớp.
Câu trả lời:
Mỗi kết nối được học trong một mạng feedforward là một tham số. Đây là hình ảnh của một mạng chung từ Wikipedia:
Mạng này được kết nối đầy đủ, mặc dù các mạng không phải (ví dụ: thiết kế mạng với các trường tiếp nhận giúp cải thiện khả năng phát hiện cạnh trong hình ảnh). Với ANN được kết nối đầy đủ, số lượng kết nối chỉ đơn giản là tổng sản phẩm của số lượng nút trong các lớp được kết nối. Trong hình trên, đó là . Hình ảnh đó không hiển thị bất kỳ nút thiên vị nào, nhưng nhiều ANN có chúng; nếu vậy, bao gồm nút thiên vị trong tổng số cho lớp đó. Nói chung hơn (ví dụ: nếu ANN của bạn không được kết nối đầy đủ), bạn chỉ cần đếm các kết nối.
Đối với mạng MLP được kết nối đầy đủ, bạn có thể sử dụng mã (Python) sau:
def total_param(l=[]):
s=0
for i in range(len(l)-1):
s=s+l[i]*l[i+1]+l[i+1]
return s
sau đó nếu bạn có một mạng với cấu hình lớp sau
input: 435
hidden: 166
hidden: 103
hidden: 64
output: 15
bạn chỉ cần gọi hàm với
total_param([435,166,103,64,15])
97208