Normalize là gì

     

Các quy mô Deep Learning bây chừ đang tạo nên các tế bào hình tốt nhất có thể để giải quyết rất những các nghành nghề dịch vụ và bài xích toán tinh vi như là speech recognition, computer vision, machine translation, v.v.. Mặc dù nhiên, để rất có thể huấn luyện xuất sắc được các mô hình Deep Learning là rất trở ngại vì các mô hình hiện tại có cấu trúc bao hàm rất các layer, trong suốt quá trình đó,phân bố tài liệu qua các layer bị biến chuyển đổi. Vị vậy, để mô hình hoàn toàn có thể học nó là tương đối khó khăn. Bởi vì vậy, trong nội dung bài viết này, mình sẽ giới thiệu tầm quan trọng của vấn đề normalization và các cách thức của nó để các bạn cũng có thể sử dụng chúng cân xứng với bài toán của bạn.

Bạn đang xem: Normalize là gì

Đang xem: Normalization là gì

Normalize data là gì?

Dù có khá nhiều ý con kiến trái ngược nhưng chuẩn chỉnh hóa CSDL là một trong những việc quan trọng để giành được một database tốt: không còn các dị kì (update anomaly, insertion anomaly, deletion anomaly), không tồn tại dư vượt dữ liệu.

*
*
*

Normalization có nhiều phương pháp, như tôi đã nói ngơi nghỉ trên, câu hỏi lựa chọn phương pháp đúng cho mục tiêu của mô hình là cực kỳ quan trọng, sau đây mình sẽ chỉ dẫn một số phương pháp mà mình tra cứu hiêu được :

Batch normalization

Batch normalization là một trong những phương thức normalization được sử dụng thông dụng trong mô hình deep learning. Nó chất nhận được đào tạo cấp tốc hơn với ổn dịnh các mạng nơ-ron sâu bằng cách ổn định sự phân bố của các đầu vào những layer trong quá trình huấn luyện.Cách tiếp cận này đa số liên quan cho Internal Covariate Shift (ICS). Để cải thiện việc huấn luyện và đào tạo mô hình, điều đặc biệt quan trọng là đề nghị giảm ICS bằng cách kiểm kiểm tra means và variances của dữ liệu đầu vào các layer, nôm na là điều chỉnh phân phối của dữ liệu cho đồng nhất trên toàn tế bào hình. Batch normalization là một trong những phương thức chuẩn hóa các hàm kích hoạt vào mạng qua 1 mini-batch theo size được có mang trước đó. Với mỗi feature, batch normalization đo lường và tính toán trung vị với phương không nên của feature đó trong một mini-batch. Sau đó, nó trừ đi quý hiếm trung bình và phân tách cho độ lệch chuẩn của mini-batch đó. Công thức sẽ được biểu diễn như sau:

μB←1m∑i=1mxi//mini−batchmeanmu_mathcalB leftarrow frac1m sum_i=1^m x_i / / mini-batch meanμB​←m1​i=1∑m​xi​//mini−batchmean

σB2←1m∑i=1m(xi−μB)2//mini−batchvariancesigma_mathcalB^2 leftarrow frac1m sum_i=1^mleft(x_i-mu_mathcalBight)^2 quad / / mini-batch variance σB2​←m1​i=1∑m​(xi​−μB​)2//mini−batchvariance

Điều gì xẩy ra nếu ta tăng cường độ trọng số làm cho quy mô trở nên giỏi hơn. Để giải quyết vấn đề này, chúng ta cũng có thể thêm γ cùng β để chúng hoàn toàn có thể học scale với shift vs thông số tương ứng. Được biểu lộ như sau:

Input: Values of xxx over a mini-batch: B=x1…mmathcalB=leftx_1 ldots mightB=x1…m​ Parameters lớn be learned: γ,βgamma, etaγ,β

Output: yi=BNγ,β(xi)lefty_i=mathrmBN_gamma, etaleft(x_iight)ightyi​=BNγ,β​(xi​)

μB←1m∑i=1mxi//mini−batchmeanmu_mathcalB leftarrow frac1m sum_i=1^m x_i / / mini-batch meanμB​←m1​i=1∑m​xi​//mini−batchmean

σB2←1m∑i=1m(xi−μB)2//mini−batchvariancesigma_mathcalB^2 leftarrow frac1m sum_i=1^mleft(x_i-mu_mathcalBight)^2 quad / / mini-batch variance σB2​←m1​i=1∑m​(xi​−μB​)2//mini−batchvariance

x^i←xi−μBσB2+ϵ//normalizewidehatx_i leftarrow fracx_i-mu_mathcalBsqrtsigma_mathcalB^2+epsilon / / normalize xi​←σB2​+ϵ​xi​−μB​​//normalize

yi←γx^i+β≡BNγ,β(xi)//scaleandshifty_i leftarrow gamma widehatx_i+eta equiv mathrmB mathrmN_gamma, etaleft(x_iight) / /scale và shiftyi​←γxi​+β≡BNγ,β​(xi​)//scaleandshift

Các vụ việc của batch normalization

Variable batch size -> trường hợp barch size là 1, thì phương sai sẽ bằng 0, hôm nay thì batch norm không chuyển động được. Rộng nữa, nếu ta cho mini-batch nhỏ tuổi thì nó sẽ thành nhiễu và ảnh hưởng đến quá trình huấn luyện tế bào hình.Cũng có vấn đề trong những lúc huấn luyện. Như là, nếu khách hàng đang giám sát trên các máy khác biệt thì chúng ta phải bao gồm batch kích cỡ giống nhau vị tham số γ với β đã khác nhau so với các hệ thống khác nhauRecurrent Neural Network -> vào RNN, những kích hoạt lặp lại của mỗi bước thời gian sẽ có một câu chuyện khác nhau để kể (tức là số liệu thống kê). Điều này còn có nghĩa là họ phải cân xứng với các layer batch norm riêng biệt cho từng time-step. Điều này làm cho cho quy mô phức tạp hơn cùng tốn không gian hơn vì nó buộc bọn họ phải tàng trữ số liệu thống kê mang lại từng bước thời hạn trong quy trình đào tạo.

Các lợi ích của batch normalization

Làm bớt internal covariate shift (ICS) và tăng tốc độ huấn luyện cho mô hình deep learning.Cách tiếp cận này làm giảm sự dựa vào của gradients vào tỉ lệ của những tham số hoặc giá bán trị thuở đầu của chúng, dẫn cho learning rate cao hơn mà không có nguy cơ phân kỳ.Batch normalization giúp bạn có thể sử dụng các chính sách phi tuyến đường bão hòa bằng cách ngăn mạng tránh bị kẹt trong các cơ chế bão hòa.

Weight normalization

Weight normalization là 1 trong quá trình đánh giá lại những trọng số vector vào một mạng neural sâu hoạt động bằng phương pháp tách độ dài của các vectơ trọng lượng kia khỏi vị trí hướng của chúng. Nói một bí quyết dễ hiểu, bạn cũng có thể định nghĩa chuẩn hóa trọng số như một cách thức để nâng cấp tính về tối ưu của các trọng số của quy mô mạng nơ-ron.Weight normalization review lại các trọng số như sau:

w=g∥v∥voldsymbolw=fracg oldsymbolvw=∥v∥g​v

Việc tách các vector trọng số ra khỏi hướng của nó, điều này tương tự như cách hoạt động của batch normalization cùng với phương sai. Điều khác hoàn toàn duy tuyệt nhất ở đó là biến thể thay vì hướng.Về quý giá trung bình, những tác mang của bài xích báo này vẫn khéo léo kết hợp trung bình batch normalization và chuẩn hóa trọng lượng để sở hữu được giá trị mong muốn ngay cả trong những lô nhỏ tuổi nhỏ. Có nghĩa là chúng trừ đi quý giá trung bình của mini-batch nhưng lại không phân chia cho phương sai. Cuối cùng, bọn họ sử dụng chuẩn chỉnh hóa trọng số thay vày chia cho phương sai.Lưu ý: Trung bình không nhiều nhiễu hơn so với phương không đúng (ở trên tức là một lựa chọn tốt so cùng với phương sai) do quy cơ chế số lớn.Bài báo cho rằng weight normalization kết phù hợp với batch normalization đạt được kết quả tốt tốt nhất trên CIFAR-10.

Các ích lợi của weight normalization

Weight normalization nâng cấp điều kiện của sự việc tối ưu cũng tương tự tăng vận tốc hội tụ sự sút dần của SGD.Nó rất có thể áp dụng xuất sắc cho mô hình hồi quy như thể LSTM cũng tương tự là quy mô reinforcemnet learning,…

Layer normalization

Layer normalization là 1 phương thức nhằm cải tiển tốc đố giảng dạy với các mô hình neural nerworks đa dạng. Không giống hệt như batch normalization, cách thức này ước tính thẳng số liệu thống kê chuẩn chỉnh hóa từ các đầu vào tổng vừa lòng đến các nơ-ron bên phía trong một lớp ẩn. Layer normalization về cơ bạn dạng được xây cất để khắc phục những tinh giảm của batch normalization như dựa vào vào những mini-batch, v.v.Layer normalization chuẩn hóa đầu vào trên các features ráng vì chuẩn chỉnh hóa các features đầu vào trên từng batch trong batch normalization.

Xem thêm: Lỗi Cảm Biến Vân Tay Iphone 6 S Không Nhận Vân Tay, Cách Nào Khắc Phục?

Một mini-batch bao gồm nhiều lấy ví dụ với cùng một số tính năng. Mini-batch là ma trận (hoặc tenxơ) trong các số đó một trục tương xứng với lô với trục kia (hoặc những trục) tương ứng với các form size đặc trưng.

μi=1m∑j=1mxijmu_i=frac1m sum_j=1^m x_i jμi​=m1​j=1∑m​xij​

σi2=1m∑j=1m(xij−μi)2sigma_i^2=frac1m sum_j=1^mleft(x_i j-mu_iight)^2σi2​=m1​j=1∑m​(xij​−μi​)2

xij^=xij−μiσi2+ϵhatx_i j=fracx_i j-mu_isqrtsigma_i^2+epsilonxij​^​=σi2​+ϵ​xij​−μi​​

Trong những bài báo, những tác trả tuyên ba rằng layer normalization chuyển động tốt rộng batch normalization trong các bài toán RNN,..

Các lợi ích của layer normalization

Layer normalization hoàn toàn có thể dễ dàng áp dụng cho quy mô RNN bởi vì nó tính toán thống kê chuẩn hóa đơn lẻ trên từng time-step.Cách tiếp cận này có công dụng trong bài toán ổn định những trạng thái ẩn trong số mạng hồi quy.

Instance normalization

Layer normalization với instance normalization rất giống như nhau nhưng mà sự khác hoàn toàn giữa bọn chúng là instance normalization chuẩn chỉnh hóa qua từng channel trong những ví dụ đào tạo và giảng dạy thay vì chuẩn hóa qua các features nguồn vào trong một lấy một ví dụ huấn luyện. Không y như batch normalization,lớp instance normalization được áp dụng trong quá trình thử nghiệm cực tốt ( vì không dựa vào vào mini-batch ), được vận dụng cho toàn bộ loạt ảnh thay bởi một hình ảnh duy nhất

ytijk=xtijk−μtiσti2+ϵy_t i j k=fracx_t i j k-mu_t isqrtsigma_t i^2+epsilonytijk​=σti2​+ϵ​xtijk​−μti​​

μti=1HW∑l=1W∑m=1Hxtilmquad mu_t i=frac1H W sum_l=1^W sum_m=1^H x_t i l mμti​=HW1​l=1∑W​m=1∑H​xtilm​

σti2=1HW∑l=1W∑m=1H(xtilm−muti)2quadsigma_t i^2=frac1H W sum_l=1^W sum_m=1^Hleft(x_t i l m-m u_t iight)^2σti2​=HW1​l=1∑W​m=1∑H​(xtilm​−muti​)2

Trong đó, x∈ ℝ T ×C×W×H là nguồn vào tensor cất một batch của T ảnh. Hotline xₜᵢⱼₖ bộc lộ phần tử tijk-th của nó, trong các số ấy k cùng j không ngừng mở rộng kích thước không gian (Chiều cao và Chiều rộng của hình ảnh), i là kênh đặc thù (kênh màu nếu đầu vào là hình hình ảnh RGB) với t là chỉ số của hình ảnh trong lô.

Các ích lợi của instance normalization

Việc chuẩn chỉnh hóa này đơn giản và dễ dàng hóa quá trình huấn luyện của tế bào hình.Instance normalization hoàn toàn có thể áp dụng trong quy trình thử nghiệm tế bào hình.

Xem thêm: Không Tìm Thấy Gpedit.Msc Trong Win 10, Cách Kích Hoạt Gpedit

Group normalization

Group normalization nói theo cách khác là một chiến thuật thay gắng cho batch normalization. Cách tiếp cận này hoạt động bằng phương pháp chia những kênh (channels) thành những nhóm và đo lường và thống kê trong mỗi nhóm giá trị trung bình và phương sai để chuẩn hóa tức là chuẩn chỉnh hóa các tính năng trong những nhóm. Không y hệt như batch normalization, chuẩn chỉnh hóa nhóm hòa bình với kích thước batch size và độ đúng mực của nó cũng ổn định định trong không ít loại batch size.

Chúng ta hoàn toàn có thể thấy Group normalization đứng trọng tâm instance normalization cùng layer normalization. Khi chúng ta cho toàn bộ các kênh (channels) vào 1 team thì group normalization biến layer normalization. Còn khi cho mỗi keenh(channel) vào các nhóm khác nhau thì nó trở nên instance normalization

μi=1m∑k∈Sixk,σi=1m∑k∈Si(xk−μi)2+ϵmu_i=frac1m sum_k in mathcalS_i x_k, quad sigma_i=sqrtfrac1m sum_k in mathcalS_ileft(x_k-mu_iight)^2+epsilonμi​=m1​k∈Si​∑​xk​,σi​=m1​k∈Si​∑​(xk​−μi​)2+ϵ​

Si=k∣kN=iN,⌊kCC/G⌋=⌊iCC/G⌋mathcalS_i=leftk mid k_N=i_N,leftlfloorfrack_CC / Gightfloor=leftlfloorfraci_CC / GightfloorightSi​=k∣kN​=iN​,⌊C/GkC​​⌋=⌊C/GiC​​⌋

x^i=1σi(xi−μi)hatx_i=frac1sigma_ileft(x_i-mu_iight)x^i​=σi​1​(xi​−μi​)

yi=γx^i+βy_i=gamma hatx_i+etayi​=γx^i​+β

Các công dụng của group normalization

Nó hoàn toàn có thể thay thể batch normalization trong một trong những bài toán về Deep Learning.Dễ dàng thực hiện nó.Kết luận

Qua bài viết này các bạn đã phát hiện tầm đặc biệt của bài toán normalization. Trong các phương thức normalization trên thì Batch Normalization vẫn chính là phương thức cực tốt và được áp dụng rộng rãi cho nhiều bài toán trong Deep Learning. Mặc dù nhiên, vào trong 1 ngày không đẹp trời nào đó, tế bào hình của người sử dụng chạy lâu với khó quy tụ , các chúng ta có thể thử biến hóa các cách thức khác theo bài bác toán của công ty xem sao, biết đâu trời lại đẹp. Chúc chúng ta một ngày tiếp thu kiến thức và làm việc hiệu quả. Cảm ơn với nhớ để lại cho doanh nghiệp một upvote cùng một lượt thích nhé. Thanks you!!!