Logistic regression là gì

     

1. Giới thiệu

Logistic regression là thuật toán đầu tiên mình thích giới thiệu trong loạt bài bác về deep learning, đây là thuật toán dễ dàng và đơn giản nhưng lại rất công dụng trong câu hỏi phân loại (Classification).

Bạn đang xem: Logistic regression là gì

Logistic regression được áp dụng trong việc phân loại nhị phân (Binary classification) tức ta sẽ có được hai output, hoặc rất có thể gọi là hai nhãn (ví dụ như 0 và 1 hoặc cat và non-cat).Logistic regression thường được sử dụng để so sánh với những thuật toán phân các loại khác.

2. Định nghĩa

Hồi quy logistic là một phương pháp phân tích những thống kê được sử dụng để tham gia đoán giá chỉ trị tài liệu dựa trên các quan giáp trước kia của tập dữ liệu.

Mục đích của hồi quy logistic là ước tính tỷ lệ của những sự kiện, bao gồm xác định quan hệ giữa các tính năng từ đó đự đoán tỷ lệ của những kết quả, nên so với hồi quy logistic ta sẽ có:Input: dữ liệu input (ta đã coi bao gồm hai nhãn là 0 cùng 1).Output : phần trăm dữ liệu input lâm vào hoàn cảnh nhãn 0 hoặc nhãn 1.

*

Ở hình bên trên ta gọi các điểm màu xanh là nhãn 0 và các điểm red color là nhãn 1 đối với hồi quy logistic ta sẽ biết được với từng điểm thì xác xuất rơi vào hoàn cảnh nhãn 0 là bao nhiêu và xác suất rơi vào nhãn một là bao nhiêu, ta có thể thấy giữa hai blue color và màu đỏ có một con đường thẳng để phân loại rất ví dụ nhưng nếu các điểm tài liệu mà không nằm sang phía 2 bên mà nằm trộn lẫn nhiều sát vào nhau thì ta sẽ phân chia như như thế nào ? lúc đó ta sẽ call tập dữ liệu có không ít nhiễu cùng ta buộc phải xử lí trước các nhiễu đó.

3. Thiết lập bài toán

Mình đã lấy ví dụ ở bài toán phân các loại mèo, trong việc này sẽ có hai nhãn là cat và non-cat, input đã là bức ảnh. Như ta đã biết một bức ảnh màu sẽ sở hữu được ba kênh màu sắc là R, G, B với cùng một bức hình ảnh có kích cỡ là (w * h ) thì sẽ có được tất cả (w * h * 3) điểm ảnh ( nhân với 3 vì có bố kênh màu), số điểm ảnh chính là số hào kiệt của vectơ đầu vào ( mathbfx ). Ở hình dưới ta có thể thấy xuất phát từ một bức hình ảnh màu ta đang reshape về một vectơ cột ( mathbfx ) để triển khai input cho mô hình logistic.

*

Với mỗi bức hình ảnh ta sẽ có được một input ( mathbfx ) đề nghị với (m) bức ảnh ta sẽ có (m) input, việc lấy (m) bức ảnh làm đầu vào là bởi vì bài toán học vật dụng có đo lường (có nhãn mang đến input) đề xuất nhiều tài liệu đầu vào để train mô hình, một bức ảnh là thừa ít để cho mô hình rất có thể học được.

4. Kiến tạo model

Tương từ như bài toán linear regression ta sẽ có một cỗ trọng số ( mathbfw ) cùng hai nhãn, nhãn 0 là non-cat với nhãn 1 là cat câu hỏi học của tế bào hình chính là việc điều chỉnh bộ trọng số ( mathbfw ) làm sao để cho dự đoán đầu ra theo như đúng ý ước ao của ta, giả dụ bạn không biết về thuật toán linear regression thì các chúng ta có thể đọc sinh sống đây.

4.1 Kí hiệu

Xét trên một điểm tài liệu ta bao gồm input (mathbfx = ) sẽ là 1 trong những vector cột, ta sẽ chống cách những feature((x_i)) bằng dấu “;”. Input ( mathbfx ) sẽ sở hữu dạng như mặt dưới:

>

Xét trên cục bộ bộ tài liệu ( m điểm dữ liệu) ta sẽ có một vector hàng (mathbfX = ) với từng cột là 1 trong những điểm dữ liệu (mathbfx^i) phân cách nhau bởi dấu “,”:

=left<eginmatrixx_1^(1) & x_1^(2) & dots & x_1^(m)\x_2^(1) & x_2^(2) & dots & x_2^(m)\vdots & vdots và ddots và vdots & \x_n^(1) & x_n^(2) và dots & x_n^(m)\endmatrix ight>>Ta có thể thấy (mathbfX) có được bằng phương pháp xếp thành cột các các (mathbfx^(i)).

Bộ trọng số (mathbfw = ) cũng trở thành là một vector cột, ta sẽ chống cách các trọng số (w_i) bởi dấu “;” bộ trọng số (mathbfw) sẽ có dạng như dưới:

>

và ta tất cả chuyển vị của vector (mathbfw) sẽ là một vector hàng, các (w_i) ngăn cách nhau bằng dấu “,” :>Xét bên trên một điểm tài liệu ta để (z = mathbfw^Tmathbfx + b) (b điện thoại tư vấn là bias), cùng (a = sigma(z)):Xét trên cục bộ tập dữ liệu ta để (mathbfZ = ) và (mathbfA = ), đây phần lớn là những vector sản phẩm với (m) là số điểm dữ liệu: \mathbfA = >

Note: việc kí hiệu (mathbfx, mathbfw) là vector cột với (mathbfX) bao gồm được bằng cách xếp những (mathbfx^(i)) thành cột là để dễ ợt trong việc đo lường và tính toán và thực hiện code, biện pháp kí hiệu là không nên nghĩa sao việc tính toán được thuận tiện là được.

4.2 Sigmoid function

Hàm Sigmoid (hay còn được gọi là hàm số Logistic) là 1 hàm số toán học tất cả đường cong dạng hình chữ “S” với công thức như sau:Mọi giá trị khi đi qua hàm Sigmoid sẽ phía bên trong miền giá trị số thực chạy từ 0.0 mang lại 1.0, Đồ thị hàm sigmoid:

*

Nhìn vào trang bị thị bên trên ta hoàn toàn có thể thấy cực hiếm khi trải qua hàm sigmoid đang tiệm cận mang lại (1) khi nguồn vào tiến mang lại (infty) với sẽ tiệm cận mang đến (0) khi nguồn vào tiến đến (-infty) và sẽ bởi (0.5) khi (x = 0).Nhờ vào công năng này cơ mà hàm sigmoid được áp dụng nhiều trong lĩnh vực trí tuệ tự tạo với mục đích là hàm kích hoạt( hàm kích hoạt giúp định nghĩa cổng đầu ra khi gồm một input trải qua nó).

Tính chất:– là một trong hàm số liên tiếp và thừa nhận giá trị trong tầm ((0;1)) ((exists x) cùng với (forall c) ta bao gồm (lim_x ightarrow cf(x) = f(c)))– bởi vì là hàm tiếp tục nên hàm sigmoid sẽ sở hữu đạo hàm tại hầu hết điểm.

Đạo hàm:

4.3 Model

Tất cả những dạng hồi quy thực tiễn có cùng tầm thường một phương trình tổng quát để giúp đỡ chỉ ra rằng biến kim chỉ nam (y)(biến phụ thuộc) sẽ biến hóa như nào phụ thuộc mối quan liêu hệ của chính nó với toàn bộ các biến hòa bình (x) mà lại không để ý đến việc quan hệ đó là phi đường hay con đường tính:Trong đó:– (w_0) là giá chỉ trị cầu lượng của y khi tất cả các (x_i) hồ hết đạt quý giá (0).– (epsilon) là sai số thể hiện những yếu tố chưa thể nghiên cứu đến nhưng những yếu tố này vẫn ảnh hưởng tới (y).– (w_i) là tham số cầu lượng(hay ta còn gọi là trọng số), rất có thể hiểu nôm na là từng (w_i) sẽ chịu trách nhiệm quản lí một (x_i) và (w_i) đã điều chỉnh để có giá trị (y) ước ao muốn, chú ý là quý hiếm tham số (w_i) bao gồm thể biến hóa còn giá trị (x_i) là cố kỉnh định.Khi tùy chỉnh thiết lập mô hình hồi quy ta suy xét quan hệ giữa những biến độc lập (x_i) với thay đổi mục tiêu(biến phụ thuộc), phương trình bao quát để ước lượng biến phương châm (y):Lưu ý là quý giá (epsilon) đang được một số loại bỏ.(E(y)) vào phương trình logistic regression là xác suất để kết luận giá trị của đổi thay (y) không hẳn giá trị thực của thay đổi (y):Áp dụng hàm sigmoid để gửi giá trị (mathbfw^Tmathbfx + w_0) thành tỷ lệ để kết luận giá trị của thay đổi y từ kia để xác minh được nhãn của đầu vào (mathbfx):

Đây đó là mô hình của logistic regression.

4.4 Loss function

Trước khi bước vào xây dựng hàm mất mát(loss function) mang lại hồi quy logistic ta thử đi khái niệm hàm mất đuối là gì, lý do phải yêu cầu đến nó.Như ta đã biết đối với hồi quy đường tính(linear regression) hàm mất mát được phát hành giữa sự sai không giống giữa giá trị dự đoán (haty) và cực hiếm thực (y), hàm mất mát của hồi quy con đường tính được định nghĩa như sau:Xét trên tập tài liệu có số điểm tài liệu là (m) ta bao gồm hàm mất đuối trên cả tập dữ liệu của hồi quy con đường tính:Hàm này có tên gọi là Mean Squared Error(MSE)Mục tiêu của câu hỏi cho quy mô học là ta đi kiểm soát và điều chỉnh bộ trọng số (mathbfw) sao để cho giá trị hàm mất non đạt giá chỉ trị bé dại nhất.

Xem thêm: Các Sản Phẩm Trị Mụn Đầu Đen Tốt Nhất Chuyên Gia Khuyên Dùng

Như vậy: Hàm mất đuối trong thuật toán học có giám sát(supervised learning) nói thông thường là hàm số nhằm đo sự sai không giống giữa giá bán trị thực tiễn và giá bán trị quy mô dự đoán, sự sai khác rất có thể sai không giống về quý giá thực(như vào hồi quy tuyến tính) hoặc sai khác về nhãn(như trong việc phân loại) việc định nghĩa sự sai khác như nào là tùy vào từng bài xích toán ví dụ để tự đó tạo hàm mất mát.

Đối với hồi quy logistic ta sẽ không sử dụng hàm loss như hồi quy đường tính nhưng mà ta đã đi thành lập một hàm mất mát cân xứng hơn, lí do vì sao không thực hiện hàm mất đuối như hồi quy đường tính bản thân sẽ lý giải ở cuối phần này.

Ta mang sử tỷ lệ để đầu vào (mathbfx) rơi vào cảnh nhãn (1) là (sigma(mathbfw^Tmathbfx + b)) như vậy tỷ lệ để input (mathbfx) lâm vào cảnh nhãn (0) vẫn là (1 – sigma(mathbfw^Tmathbfx + b)). để ý rằng so với hồi quy logistic trong nội dung bài viết này ta sẽ có được hai nhãn là (0) và (1), (sigma) là hàm sigmoid. Đặt (a = sigma(mathbfw^Tmathbfx + b)), theo trưng bày Bernoulli ta có:Trong đó:– (P(y|mathbfx;mathbfw)) là xác suất rơi vào nhãn y với input đầu vào (mathbfx) và bộ trọng số (mathbfw).– (y) nhận cực hiếm là (0) hoặc (1).– (a) là giá trị mà mô hình dự đoán, quý hiếm này là xác suất.

Mình đã lấy ví dụ đến dễ hiểu: từ phương trình ((1)) ta thấy, ví như nhãn của input đầu vào (mathbfx) là (1) vì vậy thay (y =1) vào phương trình ((1)) ta gồm (P(y|mathbfx;mathbfw) = a), trường hợp nhãn của input đầu vào (mathbfx) là (0) bởi vậy thay (y =0) vào phương trình ((1)) ta có (P(y|mathbfx;mathbfw) = 1 – a)Thực ra phương trình ((1)) là cách viết gộp của phương trình ((2)) với phương trình ((3)).Phương trình ((1)) lúc xét trên toàn thể tập tài liệu ta có:Mục tiêu của ta là ước lượng được giá trị của bộ trọng số (mathbfw) sao để cho (P(mathbfy|mathbfX;mathbfw)) đạt quý hiếm cực đại:(argmax_mathbfwP(mathbfy|mathbfX;mathbfw)) còn gọi là likelihood function.Việc của ta là mong lượng được cỗ trọng số (mathbfw) làm thế nào cho hàm mất đuối đạt rất tiểu, nghỉ ngơi phương trình ((4)) ta sẽ tìm search (mathbfw) làm thế nào cho (P) đạt giá chỉ trị béo nhất chính vì như vậy khi ta thêm vết “-” đằng trước thì bây giờ bài toán biến chuyển ước lương bộ trọng số (mathbfw) sao để cho (-P(mathbfy|mathbfX;mathbfw)) đạt giá bán trị nhỏ dại nhất:Ta đang biết tích ((a^(i))^y^(i)(1 – a^(i))^1-y^(i)) là một số bé dại hơn hoặc bởi 1 do vậy nếu xét với cục bộ tập tài liệu ta thấy đang biểu thức (prod_i=1^m(a^(i))^y^(i)(1 – a^(i))^1-y^(i)) sẽ có không ít giá trị bé nhiều hơn hoặc bởi 1 nhân cùng nhau và tạo thành kiểu mốt số rất bé, nếu lấy phương trình ((6)) có tác dụng hàm mất non thì sẽ gây ra hiện tượng cực hiếm của hàm mất non quá bé và gây ra khó khăn cho việc cập nhật bộ trọng số (mathbfw)( việc bộ trọng số (mathbfw) biến hóa giá trị giỏi được cập nhật giá trị như nào là phụ thuộc vào đạo hàm hàm mất mát) vì vậy ta không thể dùng phương trình ((6)) có tác dụng hàm mất mát nhưng ta phải biến hóa một chút, ta sẽ cần sử dụng hàm (log) để phát triển thành tích thành tổng, để ý ở đây vẫn là hàm (log) từ nhiên tức là hàm (ln) bởi vậy phương trình ((6)) trở thành:Như vậy ta đang coi hàm mất mát của hồi quy logistic, hàm này còn có tên gọi là Cross-Entropy:Còn hiện thời ta sẽ đi tìm lí do hồi quy logistic không sử dụng loss function hệt như ở linear regression mà mình đã bảo ở đầu phần này.Ta đang biết là thuật toán Gradient descent để đi tìm kiếm cực tè của hàm số, tuy vậy ta chỉ có thể tìm được rất tiểu hàm số khi sử dụng thuật toán này là khi hàm số là một trong những hàm lồi, vậy nếu như hàm số không hẳn hàm lồi thì sao ?Khi chưa hẳn hàm lồi thì hàm số sẽ không có điểm cực tiểu hoặc có không ít điểm cực tiểu, điều này tạo cho thuật toán gradient descent không thể kiếm được điểm rất tiểu nhất mang lại hàm số(global minimum point), dẫn cho không thể tối thiểu được hàm mất non hoặc trở ngại trong việc tối thiểu hàm mất mát.

*

Ta nhìn vào hình hình ảnh trên có thể thấy sinh hoạt hình bên trái là hàm lồi (convex), hàm này còn có một điểm rất tiểu nên điểm này cũng đó là global minimum point của hàm này luôn, hình bên yêu cầu là hàm ko lồi (non-convex) hàm này có hai điểm rất tiểu như vậy khi sử dụng thuật toán gradient descent cho hình bên đề xuất nếu như mong muốn ta rất có thể tìm lấy điểm cực tiểu duy nhất (global minimum point), nếu không may ta sẽ kiếm được điểm không cực đái nhất(local minimum point).Nhìn vào trang bị thị hàm số thì ta có thể nhận hiểu rằng đâu là hàm convex nhưng so với các hàm số phức hợp ta chẳng thể vẽ trang bị thị để phân biệt được nhưng ta sử dụng một biện pháp khác là đi tìm đạo hàm bậc hai của hàm số. Khi xét tính lồi của hàm (f(x)) ta có:

Ta tiếng sẽ đi tìm đạo hàm bậc nhị theo (mathbfw)của hai phương trình bên dưới đây:Ở đây khiến cho đơn giản mình vẫn xét với chỉ một điểm dữ liệu nên các chỉ số (i) được thải trừ khỏi các điểm dữ liệu, ví dụ như (y^(i)) bây chừ sẽ là (y) với (mathbfx^(i)) đã là (mathbfx) cùng số (frac12) cũng được loại quăng quật khỏi phương trình. Phương trình ((7)) đó là hàm loss của liner regression (MSE đối với liner regression), cùng phương trình ((8)) đó là hàm loss của logistic regression lúc ở dạng MSE. Ở ngôi trường hợp đã xét hàm loss của liner regression với logistic regression đều phải có dạng tương tự nhau (MSE) chỉ không giống nhau ở (haty)(giá trị dự đoán).

Mục đích của ta là đang xét tính lồi của phương trình ((7)) và ((8)), để triển khai như vậy ta phải đi tìm kiếm đạo hàm bậc nhị theo (mathbfw) của hai phương trình này.

Đạo hàm phương trình ((7)):Ta có: (haty = mathbfw^Tmathbfx + b) cần (fracpartialhatypartialmathbfw = mathbfx)* Đạo hàm bậc nhất theo (mathbfw):* Đạo hàm bậc nhì theo (mathbfw):Vậy ta sẽ thấy khi đạo hàm bậc nhị theo (mathbfw) hàm mất mát của liner regression ta được tác dụng là lớn hơn (0) vậy hàm mất mát này là hàm lồi(có thể dùng thuật toán gradient descent để tìm rất tiểu) hiện thời ta đã xét tiếp tính lồi hàm mất đuối của logistic regression với hàm mất non thuộc dạng MSE.

Đạo hàm phương trình ((8)):Ta có: (haty = frac11+ e^-(mathbfw^Tmathbfx +b)) cần (fracpartialhatypartialmathbfw = mathbfx(1-haty)haty)

*Đạo hàm bậc nhất theo (mathbfw):*Đạo hàm bậc nhị theo (mathbfw):<eginalignfracpartial^2J(mathbfw)partialmathbfw^2&= fracpartialg(mathbfw)partialmathbfw\&= -2mathbfxfracpartial(yhaty – haty^2 -yhaty^2 + haty^3)partialmathbfw \&= -2mathbfx \&= -2mathbfx^2haty(1-haty)(3haty^2-2yhaty-2haty + y) ~~~~~~~~~~~~~~~~~~~~~ (9)endalign>Mục đích của ta là đi tìm kiếm xem phương trình ((9)) to hơn hay bé thêm hơn (0).Ta thường thấy (mathbfx^2haty(1-haty)) luôn to hơn hoặc bằng 0 bởi vì (haty in <0,1>), tức giờ ta chỉ cần xét hàm số sau:Ta thấy (y) chỉ nhận quý hiếm (0) hoặc (1), cụ vào (10) ta có:<eginalignegincasesf(haty) = -2(3haty^2- 2haty – 2haty + 1) = -6(haty-1)(haty – frac13) ~~ (y=1) ~~ (11)\f(haty) = -2(3haty^2 – 2haty) = -4haty(frac32haty -1) ~~ (y=0) ~~(12)endcasesendalign>Đối với phương trình ((11)) ta thấy với (haty in <0,frac13>) thì phương trình ((11)) sẽ (leq 0)Đối cùng với phương trình ((12)) ta thấy cùng với (haty in ) thì phương trình ((12)) đang (leq 0)Từ nhì điều trên ta suy ra được là đã tồn tại (haty) để cho phương trình ((10)

Vậy ta đã chứng minh được phương trình ((7)) là 1 trong hàm convex và phương trình ((8)) là một trong những hàm non-convex. Ví như các bạn muốn kiểm tra tính chính xác khi ta thiết kế hàm mất mát mang lại logistic regression là Cross-Entropy thì các chúng ta có thể đi kiếm tìm đạo hàm bậc hai theo (mathbfw) của hàm Cross-Entropy và chứng minh nó (geq 0). Mình sẽ không đi chứng minh trong nội dung bài viết này, các chúng ta cũng có thể thử sức.

4.5 Forward propagation

Từ phần này ta ban đầu đi vào bài toán tính toán phía bên trong model. Forward propagation hotline là quá trình giám sát và đo lường xuôi từ xuyên thấu từ input mang lại output.

Ta rất có thể thấy ngơi nghỉ hình trên các bộ trọng số (mathbfw) sẽ được kết hợp với input sau đó đi qua 1 hàm kích hoạt (ở đây vẫn là hàm sigmoid) khiến cho ra output, với hồi quy logistic hoàn toàn có thể coi là mạng neural dễ dàng và đơn giản có một đơn vị neural.

Thực ra ở phần trên mình đã tính output ở các phần trên, mình viết lại bên dưới:

(mathbfw^Tmathbfx + b) sẽ là input, hàm sigmoid kết phù hợp với input sẽ là model, kết quả P đang là output.

4.6 Backpropagation

Ngược cùng với Forward propagation là Backpropagation, đây là quá trình giám sát ngược trong thuật toán. Ngược ở đây có nghĩa là chúng ta sẽ trường đoản cú đi từ bỏ loss function để kiểm soát và điều chỉnh bộ trọng số (mathbfw) nhằm mục tiêu giảm giá tốt trị loss ở các lần đo lường và tính toán xuôi tiếp theo, quan sát vào sơ vật dụng ta hoàn toàn có thể thấy rõ hơn:

Ta đã có hàm mất mát của logistic regression, xem xét là mình đã xét với một điểm tài liệu nên kí hiệu (sum_i=1^m) đã bị bỏ đi:Ta có:<eginalignfracpartialJ(mathbfw)partialmathbfw =&-left( y^(i)fracmathbfx^(i)a^(i)(1-a^(i))a^(i) + (1-y^(i))frac-mathbfx^(i)a^(i)(1-a^(i))1-a^(i) ight)\=& -(y^(i)mathbfx^(i)(1-a^(i)) – mathbfx^(i)a^(i)(1-y^(i))) \=& -(mathbfx^(i)(y^(i)-a^(i)))\=& mathbfx^(i)(a^(i)-y^(i))endalign>Vậy ta gồm công thức cập nhật cho (mathbfw):

Nếu màn trình diễn tổng quát mắng cho toàn cục dữ liệu ta có:Trong đó:– (eta): là tốc độ học– (y^(i)): giá trị đúng của đầu vào (mathbfx^(i)), (y^(i)) nhận quý hiếm (0) hoặc (1).– (a^(i)): giá bán trị mô hình dự đoán ứng với đầu vào (mathbfx^(i)).– m: là số điểm dữ liệu.– (mathbfX): dạng biểu diễn tất cả điểm dữ liệu, ở đoạn kí hiệu tôi đã chỉ rõ.– (mathbfA): dạng biểu diễn giá trị mô hình dự đoán được cho tất cả điểm dữ liệu.– (mathbfY): dạng màn biểu diễn nhãn của tất cả điểm dữ liệu.

5. Tóm tắt thuật toán

Nếu các bạn thấy các công thức toán trên khó đọc hoặc đơn giản và dễ dàng bạn chỉ ý muốn biết đều thứ cơ phiên bản về thuật toán logistic regression. Phần này mình sẽ tóm tắt phần nhiều gì quan trọng nhất trong thuật toán logistic regression.

Hàm kích hoạt được sử dụng là hàm sigmoid:Dạng model:

Hàm mất non trên toàn cục tập dữ liệu, họ gọi đấy là hàm Cross-Entropy:Giá trị update cho cỗ trọng số:

Trong đó:– (eta): là vận tốc học– (y^(i)): quý hiếm đúng của đầu vào (mathbfx^(i)), (y^(i)) nhận giá trị (0) hoặc (1).– (a^(i)): giá bán trị mô hình dự đoán ứng với đầu vào (mathbfx^(i)).– m: là số điểm dữ liệu.– (mathbfX): dạng biểu diễn tất cả điểm dữ liệu, tại đoạn kí hiệu mình đã chỉ rõ.– (mathbfA): dạng màn biểu diễn giá trị mô hình dự đoán được cho tất cả điểm dữ liệu.– (mathbfY): dạng biểu diễn nhãn của tất cả điểm dữ liệu.

Xem thêm: Những Ứng Dụng Sạc Pin Nhanh Cho Iphone, Tăng Tốc Sạc Pin Iphone

6. Tạo ra thuật toán với code python

Phần này mình sẽ xây dựng dựng thuật toán logistic regression để phân loại hình ảnh cats cùng dogs, mình đang gán nhãn cats là (1) với dogs là (0).

Trước khi lấn sân vào phần code mình tất cả một vài lưu lại ý:

Phần code bản thân viết chỉ bảo vệ là thể hiện lại thuật toán, code mình không bắt exception nên mong chạy đúng phải bảo vệ đúng format input.Phải bảo đảm an toàn data bạn sử dụng đã resize về đúng kích thước. Ví dụ bạn để image_widght x image_height là (128 * 128) thì bạn phải bảo đảm dữ liệu của người sử dụng đã đúng định dạng (128 * 128).Config mình sẽ thông số kỹ thuật trong file config.jsonNhãn tài liệu là tệp tin label.json

6.1 tạo ra hàm khởi chế tạo init_param()

Hàm này sẽ có nhiệm vụ khởi tạo bộ trọng số (mathbfw) cùng tham số bias (b). Thường thì hai giá trị này sẽ sở hữu hai cách để khởi tạo, khởi tạo bởi (0) hoặc lấy quý hiếm ngẫu nhiên. Đối với Logistic regression cách khởi tạo bởi (0) vẫn hay được sử dụng: