Nếu bạn biết về thuật ngữ phân nhiều trong Machine learning, thì bạn sẽ dễ dàng hiểu có mang về Gaussian Mixture model hơn. Nếu như bạn không biết về phân cụm, thì bài viết ở trên đây sẽ cân xứng để phân tích và lý giải cho bạn; cửa hàng chúng tôi mang đến cho mình hướng dẫn toàn diện về Phân các trong Machine learning.

Bạn đang xem: Sử dụng thuật toán GMM để phân cụm dữ liệu

Trở lại với bài xích viết, họ sẽ để mắt tới định nghĩa của GMM, yêu cầu, cách tiến hành của nó và cuối cùng là một phân tích điển hình mang đến Gaussian Mixture Model. Bọn họ sẽ hiểu giải pháp GMM là một trong những phần mở rộng khác biệt của thuật toán phân nhiều và nguyên nhân tại sao bọn chúng được hâm mộ hơn các thuật toán khác.


Tóm tắt nội dung


GMM (Gaussian Mixture Model)là gì?

Để đại diện cho một quần thể bé được phân phối chuẩn trong một tổng thể, cửa hàng chúng tôi sử dụng Gaussian Mixture Model. GMM ko yêu cầu dữ liệu thuộc về số lượng dân sinh con. Điều này cho phép mô hình auto tìm hiểu những quần thể con. Vì họ không biết sự phân công của số lượng dân sinh con, vì thế nó không được giám sát.

Ví dụ: giả sử rằng bạn phải lập quy mô dữ liệu chiều cao của nhỏ người. độ cao trung bình của nam giới trong phân phối chuẩn chỉnh là 5’10 ”và 5’5” so với nữ. Suy xét rằng cửa hàng chúng tôi chỉ biết giữ liệu độ cao chứ chưa phải giới tính nhưng nó trực thuộc về. Vào trường hòa hợp này, trưng bày của tất cả các độ cao tuân theo tổng của nhị phân phối chuẩn chỉnh được chia phần trăm và nhì phân phối chuẩn được dịch chuyển. Mang định này được đưa ra vì Gaussian Mixture Model. Mặc dù nhiên, bao gồm thể có rất nhiều hơn hai thành phía bên trong một GMM. Thông qua ước tính những tham số chứa trong nhân tố phân phối chuẩn chỉnh riêng lẻ là một trong những vấn đề chính gặp gỡ phải khi lập quy mô dữ liệu với GMM.

Với sự trợ giúp của GMM, tín đồ ta hoàn toàn có thể trích xuất những tính năng từ dữ liệu giọng nói, theo dõi và quan sát nhiều đối tượng người sử dụng trong trường vừa lòng có một vài thành phần hỗn hợp và những phương tiện dự đoán vị trí của các đối tượng người dùng trong chuỗi video.

Tại sao bọn họ cần Gaussian Mixture Model?

Có hai nghành nghề dịch vụ phổ đổi thay nhất của Machine learning – học có đo lường và học tập không được giám sát. Bạn cũng có thể dễ dàng tách biệt giữa hai một số loại này dựa trên thực chất của tài liệu mà chúng thực hiện và các phương thức tiếp cận để giải quyết và xử lý vấn đề. Để phân cụm các điểm dựa vào các đặc điểm tương tự, công ty chúng tôi sử dụng những thuật toán phân cụm. Giả sử rằng bọn họ có tập tài liệu sau:

*
*
*
*
*
*
*
*
*
*

Nghiên cứu điển hình về GMM – Phân đoạn những khuẩn lạc vi khuẩn đồng nhất

Ghi dìm hình hình ảnh trong hình hình ảnh kỹ thuật số chỗ dữ liệu đồng nhất được lặp lại, như trong trường hợp nghiên cứu được triển khai để phân cụm các khuẩn lạc vi khuẩn đồng nhất để ước tính kích thước của chúng. Để phân lập các vùng nuôi cấy vi khuẩn khỏi đĩa có được bằng phân đoạn hình ảnh. Biểu đồ gia dụng này đã làm được tham số hóa với sự trợ góp của Gaussian Mixture Model bằng cách sử dụng phương pháp thu bé dại kỳ vọng.

Với thuật toán này, những nhà nghiên cứu có thể có được nấc độ phân bổ màu xám xuất sắc và có thể hợp nhất những phân bố riêng biệt của hai đối tượng người sử dụng khác nhau.

Bạn gồm cảm thấy mình buộc phải biết tác dụng thực sự của dòng sản phẩm học trong cuộc sống thường ngày hàng ngày không?

Kết luận

Vì vậy, kết thúc bài viết , họ đã nghiên cứu và phân tích Gaussian Mixture Model. Bọn họ đã coi qua có mang về GMM, sự quan trọng của GMM cùng cách bạn cũng có thể triển khai chúng. Rộng nữa, công ty chúng tôi cũng đã phân tích trường hợp sử dụng của bọn chúng trong công ty công nghệ sinh học. Hi vọng tất cả các mình thích hướng dẫn này. Chia sẻ xem xét và thắc mắc của người sử dụng với bọn chúng tôi.

Nội dung nội dung bài viết 4. Dirichlet Process Mixture Model5. Thử setup thuật toán DPMM với phân bổ trộn Gaussian
Dirichlet Process Mixture mã sản phẩm (DPMM) là một thuật toán phân cụm phía bên trong nhóm những thống kê phi tham số Bayesian, sỡ dĩ điện thoại tư vấn là phi thông số vì chúng ta không buộc phải phải tùy chỉnh thiết lập tham số (nhưng không có nghĩa là mô hình không có tham số). Mô hình này được áp dụng nhiều vào trong các bài toán phân các khi chưa biết trước số cụm, đôi khi dùng nhằm xấp xĩ hàm mật độ,…

*

Dirichlet Process Mixture mã sản phẩm (DPMM) có nhiều ứng dụng thực tiễn, quan trọng đặc biệt trong câu hỏi phân tích nhiều khi chưa chắc chắn số các (khi nhưng lượng dữ liệu lớn và số chiều cao). Dẫu gồm rất nhiều phương pháp được thiết kế để “đoán số cụm” của dữ liệu, song nhiều phần hướng tiếp cận chủ yếu được xuất bản như là một “mẹo giải” (heuristic), cách thức này khá đặc biệt vì hướng tiếp cận được xây dựng nghiêm ngặt từ mô hình lý thuyết.

Mô hình vô hạn của Dirichlet Process Mixture mã sản phẩm khởi sinh sản một lượng lớn số cụm không quan trọng và sử dụng chúng để né khỏi cục bộ địa phương. Hãy cùng nhau mày mò thuật toán này nhé!

*

1. Bài toán quá trình nhà hàng quán ăn Trung Hoa Chinese Restaurant Process

Trước lúc đến với câu hỏi gốc, chúng ta hãy cùng nhau khảo sát điều tra bài toán “quá trình nhà hàng trung hoa” bởi nó có contact đến ý tưởng quy mô hóa của mô hình “vô số cụm” trong vấn đề sắp tới.

Tưởng tượng một nhà hàng quán ăn kỳ lạ:

Nhà hàng có vô hạn mẫu bàn.Mỗi dòng bàn hoàn toàn có thể chứa vô hạn khách.

Mỗi khách mang lại với nhà hàng và ngồi ở trong một chiếc bàn với cơ hội:

Ngồi vào một bàn $c$ đang xuất hiện người ngồi: $$p( extngồi sinh sống bàn c) = fracn_calpha + sum_c n_c$$Ngồi vào trong 1 bàn mới chưa xuất hiện người ngồi: $$p( extngồi nghỉ ngơi bàn extbfmới) = fracalphaalpha + sum_c n_c$$

Với $alpha$ được là 1 trong tham số tỉ lệ thành phần (còn call là “độ tập trung”), $alpha$ càng bự thì dường như như rằng nhà hàng quán ăn phải mở các bàn hơn, $alpha$ càng nhỏ dại thì bao gồm vẻ quán ăn mở với con số bàn không nhiều hơn, $n_c$ là số lượng người bây giờ đang ngồi nghỉ ngơi bàn $c$, vì vậy $sum_c$ là số quý khách hàng đang ngồi tại quán ăn Trung Hoa.

Quá trình trên được gọi là “quá trình quán ăn Trung Hoa được định nghĩa bởi .

Bài toán này thiệt sự không tồn tại gì đặc biệt, nếu như chúng không test mô rộp nó tí xem.

*


*


# _______________________________________________________________________# |<> Theta
Log
Shell |X>|!"|# |"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|"|# | > Theta
Log.com | |# | > ENV: Python 3.7.3 (Anaconda) | |# | > mô phỏng bài xích toán quán ăn trung hoa | |# |_____________________________________________________________________|/import numpy as npfrom scipy import statsimport matplotlib.pyplot as pltfrom matplotlib import stylestyle.use("fivethirtyeight")# gán seed để máy chúng ta và sản phẩm công nghệ mình ra thuộc kết quảnp.random.seed(0)def chinese_restaurant_process(alpha, n): """ tế bào phỏng bài toán nhà hàng quán ăn trung hoa :param alpha: hệ số alpha của vấn đề CRP :param n: số lượng quý khách :return count: con số bàn được mở """ i = 0 # với từng table là số tín đồ đang ngồi sinh hoạt bàn k table = <> for i in range(n): prob = list(map(lambda x: x/(alpha + i), table)) prob.append(alpha/(alpha + i)) # chuẩn hóa prob để dùng stats.rv_discrete # tránh sai số bởi số thực prob = np.array(prob) prob = prob / prob.sum() # label cuối là -1 (quy ước là mở bàn mới) label = list(range(len(table))) label.append(-1) # lấy bé số đại diện thay mặt bàn cho người sử dụng current_dist = stats.rv_discrete(name="dist", values=(label, prob)) pos = int(current_dist.rvs(size=1)) if pos == -1: # nếu mở bàn bắt đầu thêm 1 bàn mới với con số 1 người table.append(1) else: # giả dụ ngồi bàn cũ thì địa điểm đó thêm một người table += 1 # đếm số lượng bàn count = len(table) return countdef simulate_crp(alpha, step, max_iter, n_simulate): """ giả lập bài xích toán nhà hàng quán ăn Trung Hoa :param alpha: thông số alpha :param step: mỗi vòng lặp tăng step quý khách hàng :param max_iter: con số vòng lặp :return list_n_table: cùng với list_n_table chứa n_simulate mang lập với alpha cùng step*k """ list_n_table = <> for i in range(1, max_iter+1): print("Iter: %d" % i) n_table = <> for _ in range(n_simulate): n_table.append(chinese_restaurant_process(alpha, i*step)) list_n_table.append(n_table) return list_n_table
Thử tế bào phỏng:# tế bào phỏnglist_n_table = simulate_crp(30, 50, 50, 100)for i in range(50): x = * 100 plt.scatter(x, list_n_table, màu sắc = "#007aff", s = 1.2)x_mean = <>y_mean = <>for i in range(50): x_mean.append(i+1) y_mean.append(sum(list_n_table) / 100.0)plt.plot(x_mean, y_mean, color="#ff2d55")plt.xlabel("Số lượng khách hàng")plt.ylabel("Số lượng bàn")plt.show()
Liệu chúng ta có xúc cảm rằng số lượng bàn tăng theo hàm logarít không?

Đặt $q$ là biến hốt nhiên số bàn rất cần phải trang bị lúc biết hệ số $alpha$ và $n$ khách hàng tới nhà hàng, đầy đủ nhà toán học tập xấp xĩ được kỳ vọng với phương sai của $q$ ở trong phòng hàng kỳ cục này:

Kỳ vọng: $$mathbbE left< q | alpha, n ight> approx alpha lnleft(1+fracnalpha ight) $$Phương sai: $$mathbbV left< q | alpha, n ight> approx alpha lnleft(1+fracnalpha ight) $$

Thử vẽ hình ra coi liệu cách làm trên có đúng không ạ nào!

*

Liệu câu hỏi tăng số bàn khá chậm theo hàm logarít này có dẫn cho điều gì đặc biệt không?

Hãy cùng nhau đi làm bồi bàn vài ba bữa ở “Nhà sản phẩm Trung Hoa” để hiểu quy trình trong nhà hàng quán ăn này thuộc phép ẩn dụ “khách là điểm” còn “bàn là cụm”… thật lạ, ông chủ cứ bảo “bàn thì anh không thiếu (nhà hàng kỳ quặc vô hạn bàn) mà các thì anh không có (thực tế chỉ hữu hạn xấp xỉ trong dường dăm tía cái là cùng)“… thật kỳ quặc mà, hãy hóng xem…

2. Dirichlet Process

Quá trình Dirichlet (Dirichlet Process) là một quá trình ngẫu nhiên thường được sử dụng trong các mô hình thống kê phi thông số Bayesian. Dirichlet Process được định nghĩa bởi như là một trong những phân bố trên một phân bố khác (tạm call là “phân tía nền” - base distribution). Nó là trong những nền tảng đặc biệt quan trọng của một số mô hình thống kê phi thông số Bayesian.

Dirichlet Process xác minh bởi nhị tham số là phân bổ nền $H$ và một số dương $alpha$ được điện thoại tư vấn là độ tập trung. Call $G$ là 1 biến tự dưng có phân bố Dirichlet Process cho phân bố $H$ cùng hệ số $alpha$ ta hoàn toàn có thể viết:

$$ G sim extDP(alpha, H)$$

Lúc này với mỗi một tập hữu hạn thành phần phân hoạch không gian xác suất $A_1,…, A_r$, vectơ thiên nhiên $(G(A_1),…,G(A_r))$ được phân bố ngẫu nhiên theo $G$, ta call biến bỗng nhiên $G$ được phân bố theo Dirichlet Process với phân bổ nền $H$ thuộc độ triệu tập $alpha$ giỏi $G sim extDP(alpha, H)$ ví như vectơ bỗng dưng này thỏa:

$$ G(A_1),…,G(A_r)) sim extDir(alpha H(A_1), …, alpha H(A_r))$$

Trong kia $ extDir$ là phân bố Dirichlet (tập các trường hợp xảy ra của phân bố này thỏa từng vectơ có tổng bằng $1$ phía trong một đơn hình (hay còn được gọi là simplex), hàm mật độ cần thông số của một vectơ thông số dương).

Dirichlet Process có nhiều cách để xây dựng một thừa trình tỷ lệ để thỏa mãn những yêu mong trên. Nhì phép “ẩn dụ” phổ cập nhất của thừa Dirichlet Process mà độc giả nên thân thương là:

Chinese restaurant process.Stick-breaking construction.

Phần này họ sẽ không phân tích chi tiết ở đây.

Ngay bây giờ, họ sẽ mày mò Dirichlet Process một phương pháp trực cảm! chúng ta sẽ khám phá Dirichlet Process theo sự đổi khác tham số $H$ và $alpha$ nhằm hiểu “đôi phần về quá trình này”!

*

Hình bên trên là Dirichlet Process với tham số phân bố $H$ là phân bố chuẩn chỉnh $mathcalN(0,1)$ với thông số $alpha$ biến hóa từ bên trên xuống $1, 10, 100, 1000$ khi đem $1500$ mẫu, nhấn xét:

Dirichlet Process làm cho “rời rộc hóa” phân bổ nền, $H$ hoàn toàn có thể là một phân bố tiếp tục và trơn, tuy vậy phân ba $ extDP(alpha, H)$ thì lại tránh rạc, ko trơn hơn phân bố nền.Khi tham số $alpha$ (độ tập trung) tiến về $0$ tuyệt $alpha ightarrow 0$, phân bổ Dirichlet Process càng “rời rạc”, triệu tập tại một vài ngôi trường hợp rất có thể xảy ra của phân bố $H$.Khi tham số $alpha$ (độ tập trung) tiến về $infty$ xuất xắc $alpha ightarrow infty$, phân bổ Dirichlet Process càng “liên tục”, ít tập trung hơn trên một vài trường hợp hoàn toàn có thể xảy ra phân bổ $H$ hơn, giá trị $alpha$ càng tốt thì phân bổ Dirichlet Process càng giống phân bổ $H$.

3. Mô hình sinh tài liệu của quy mô trộn theo ý kiến từ Dirichlet Process

Trong phần này họ sẽ bàn bạc về mô hình sinh dữ liệu của quy mô trộn (Mixture Model) theo ý kiến từ Dirichlet Process.

Trong phần trăm thống kê, một quy mô trộn là một mô hình xác suất để màn trình diễn cho quy mô tổng thể bằng sự hiện diện của các phân tía con theo thông số trộn. Hay nói phương pháp khác, một phân bổ tổng quát có thể biểu diễn bằng việc trộn của các phân tía con, mang sử gồm $K$ phân bổ con, mỗi phân bổ con trang bị $k$ được cho vị một tham số $ heta_i$:

$$p(x | heta) = sum_k=1^K pi_k p_k(x | heta_k)$$

Ví dụ, mô hình trộn của phân bố chuẩn chỉnh được xác minh bởi tham số mong muốn $mu$ với ma trận hiệp phương sai $Sigma$, ta rất có thể viết lại:

$$p(x | heta) = sum_k=1^K pi_k mathcalN(x | mu_k, Sigma_k)$$

*

Giả sử từng tham số $ heta_k$ được sinh ra từ một phân tía $H$ như thế nào đó.

Hãy nghĩ về một quy trình Dirichlet Process nọ cho phân bố $H$ cùng tham số $alpha$ sinh ra những bộ thông số $ar heta_i$ nào đó $N$ lần, từng tham số $ar heta_i$ này sẽ dùng làm sinh ra những điểm dữ liệu $x_i$.

Như ta vẫn biết, Dirichlet Process sẽ làm cho rời rốc hóa phân bố gốc và tạo ra một phân bố mới triệu tập tại một vài giá trị phân bố $H$.

Tập các bộ thông số $\bar heta_1, …, ar heta_N $ bao hàm bộ thông số được lặp đi lặp lại nhiều lần! đưa sử tập cỗ tham số được lặp đi lặp lại gồm tất cả $K$ cỗ tham số khác nhau $ar heta_i in heta_1, …, heta_K $, bạn có thể hình dung quá trình này sinh ra một tập tài liệu có quy mô trộn $K$ cụm.

*

4. Dirichlet Process Mixture Model

Dirichlet Process Mixture mã sản phẩm là quy mô mà đưa thuyết là phân bổ trộn của tài liệu được có mặt được xem như là một quá trình Dirichlet bởi vì một phân bổ tham số của $ heta$.

Mô hình Bayesian này có nhiều cách để tìm tham số. Trong số những cách thông dụng tốt nhất là dùng kỹ thuật MCMC (Markov Chain Monte Carlo) hoặc cần sử dụng kỹ thuật biến phân (Variantional Inference).

Mỗi một giải pháp định nghĩa quy mô đồ thị khác biệt sẽ dẫn đến bọn họ có cách giải quyết bài toán khác nhau. Định nghĩa quy mô đồ thị như phần 3 bọn họ vẫn có thể giải quyết bài bác toán. Tuy nhiên mô hình trên không tác dụng cho bài toán này, chúng ta đọc có thể tham khảo 8 thuật toán MCMC của Radford M. Neal, mô hình đồ thị như phần 3 chính là thuật toán thứ 1 trong những bài báo “Markov Chain Sampling Methods for Dirichlet Process Mixture Models”.

Với quy mô trộn $K$ nhiều sinh $N$ điểm tài liệu $x_i$, từng điểm dữ liệu gán nhãn ở trong về các $z_i$ bạn có thể biểu diễn quy mô trộn hữu hạn Bayesian như sau (đã gắn thêm tiên nghiệm cho các tham số buộc phải thiết):

*

Với mô hình trên, khi biết điểm tài liệu $x_i$ thuộc về cụm $k$ và bao gồm tập thông số $ heta$ ta có:

$$ p(x_i | z_i = k, heta) = p(x_i | heta_k)$$

Gọi $pi$ là một trong vectơ $k$ thành phần tất cả tổng là $1$ thể hiện hệ số trộn của mô hình trộn, lúc này xác suất dữ liệu thuộc về nhiều $k$ khớp ứng là:

$$p(z_i = k | pi) = pi_k$$

Xem $pi$ được hiện ra từ phân bố Dirichlet với tham số $alpha$ (ký hiệu $ ext1_K$ mô tả một vectơ $K$ thành phần phần nhiều là $1$):

$$p(pi | alpha) = extDir(pi | (alpha/K) ext1_K)$$

Mỗi tham số $ heta_k$ được sinh ra xuất phát điểm từ một phân cha $ heta_k sim H(lambda)$, để tiện lợi cho việc giám sát phân ba tiên nghiệm $p( heta_k | lambda)$ sẽ tiến hành chọn liên phù hợp với phân bố $p(x_i | heta_k)$. (từ thuật toán 1 đến 3 trong bài xích báo của Radford M. Neal là trường hợp sử dụng tiên nghiệm liên hợp, từ thuật toán số 4 trở sau này dùng mang đến trường phù hợp không thực hiện tiên nghiệm liên hợp).

Lúc này khi biết $x_i$ thuộc cụm $ heta_k$, ta rất có thể viết $p(x_i | heta_k)$ được sinh ra từ phân bổ $x_i sim F( heta_z_i)$ cùng với $F$ là phân bố con được sử dụng trong quy mô trộn.

Nhờ tính có thể “hoán đổi” được (exchangeable random variables) vào trường hợp việc này, cùng giả sử rằng phân bổ $H$ thì liên phù hợp với $F$, bạn cũng có thể sử dụng Collapsed Gibbs Sampling (lược loại bỏ đi $pi$ và $ heta_k$) trong mô hình, việc chúng ta cần tìm bây chừ là đi tìm kiếm $z_i$.

Xem thêm: Laptop Hp Pavilion X360 14M, Laptop Hp Pavilion X360 14 Dy0172Tu I3 (4Y1D7Pa)

Loại $pi$ với $ heta_k$ ra khỏi công thức Gibbs Sampling, phân bố có điều kiện của $z$ lúc biết trước tập dữ liệu $x$ cùng với cụm của các điểm dữ liệu khác tỉ trọng với:

$$colorpurple p(z_i = k | mathbfz_-i, mathbfx, alpha, lambda) colorblack propto colorred p(z_i = k | mathbfz_-i, alpha) colorblue p(x_i | mathbfz_-i, mathbfx_-i, z_i = k, lambda)$$

(từ phần này về nhì phần sau $n_k, -i$ là con số điểm thuộc các $k$ bên cạnh điểm $x_i$)

Bởi tính rất có thể “hoán đổi” được, mang sử $z_i$ là vấn đề dữ liệu sau cùng được tạo nên (hay “khách hàng đến nhà hàng quán ăn cuối cùng” trong phép ẩn dụ bài bác toán quán ăn Trung Hoa) mà công thức $colorred p(z_i = k | mathbfz_-i, alpha)$ trở yêu cầu “dể chịu” hơn rất nhiều.

Vì sao cần được sử dụng tiên nghiệm phối hợp (conjugate prior) trong việc này? Hãy quan ngay cạnh công thức greed color $ colorblue p(x_i | mathbfz_-i, mathbfx_-i, z_i = k, lambda)$ đó là một phương pháp “khó tính” trong nhiều trường hợp!

4.1 (hữu hạn) trường hợp cho biết thêm trước số cụm

Trong trường đúng theo biết trước số nhiều $K$, ta có:

$$colorred p(z_i = k | mathbfz_-i, alpha) colorblack = frac n_k, -i + fracalphaK alpha + N - 1$$

Và:

$$ colorblue p(x_i | mathbfz_-i, mathbfx_-i, z_i = k, lambda) colorblack propto int p(x_i | heta_k) left< prod_j eq i, z_j = k p(x_j | heta_k) ight> H( heta_k | lambda) d heta_k$$