{"id":631,"date":"2019-12-07T05:56:33","date_gmt":"2019-12-07T05:56:33","guid":{"rendered":"https:\/\/www.danielparente.net\/en\/2019\/12\/07\/an-overview-of-model-explainability-in-modern-machine-learning\/"},"modified":"2019-12-07T15:31:53","modified_gmt":"2019-12-07T15:31:53","slug":"an-overview-of-model-explainability-in-modern-machine-learning","status":"publish","type":"post","link":"https:\/\/www.danielparente.net\/en\/2019\/12\/07\/an-overview-of-model-explainability-in-modern-machine-learning\/","title":{"rendered":"An overview of model explainability in modern machine learning"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div>\n<p><h2 class=\"as cx ex ey ax\">Towards a better understanding of why machine learning models make the decisions they do, and why it matters<\/h2>\n<\/p>\n<div class=\"ez\">\n<div class=\"n fa fb fc fd\">\n<div class=\"o n\">\n<div><a href=\"https:\/\/towardsdatascience.com\/@raguiar2?source=post_page-----fc0f22c8c29a----------------------\" rel=\"noopener\" target=\"_blank\"><img decoding=\"async\" alt=\"Rui Aguiar\" class=\"r fe ff fg\" src=\"https:\/\/miro.medium.com\/fit\/c\/96\/96\/2*jDgtP6RejFrTtokacnDpog.jpeg\" width=\"48\" height=\"48\"\/><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<figure class=\"gt gu gv gw gx gy do dp paragraph-image\"><figcaption class=\"ax fk hp hq hr dq do dp hs ht as cx\">Photo by <a href=\"https:\/\/unsplash.com\/@cdr6934?utm_source=medium&amp;utm_medium=referral\" class=\"dc by hu hv hw hx\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Chris Ried<\/a> on <a href=\"https:\/\/unsplash.com?utm_source=medium&amp;utm_medium=referral\" class=\"dc by hu hv hw hx\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Unsplash<\/a><\/figcaption><\/figure>\n<p id=\"5754\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Model explainability is one of the most important problems in machine learning today. It\u2019s often the case that certain \u201cblack box\u201d models such as deep neural networks are deployed to production and are running critical systems from everything in your workplace security cameras to your smartphone. It\u2019s a scary thought that not even the developers of these algorithms understand why exactly the algorithms make the decisions they do \u2014 or even worse, how to prevent an adversary from exploiting them.<\/p>\n<p id=\"9a5d\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">While there are many challenges facing the designer of a \u201cblack box\u201d algorithm, it\u2019s not completely hopeless. There are actually many different ways to illuminate the decisions a model makes. It\u2019s even possible to understand which features are the most salient in a model\u2019s predictions.<\/p>\n<p id=\"6505\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">In this article, I give a comprehensive overview of model explainability for deeper models in machine learning. I hope to explain how deeper models more traditionally considered \u201cblack boxes\u201d can actually be surprisingly explainable. We use model-agnostic methods to apply interpretability to all different kinds of black box models.<\/p>\n<p id=\"e489\" class=\"hy hz ef at ia b ib ja id jb if jc ih jd ij je il\">A partial dependence plot shows the effect of a feature on the outcome of a ML model.<\/p>\n<figure class=\"gt gu gv gw gx gy do dp paragraph-image\"><figcaption class=\"ax fk hp hq hr dq do dp hs ht as cx\">Partial dependence equation for regression<\/figcaption><\/figure>\n<p id=\"7110\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Partial dependence works by marginalizing the machine learning model output over the distribution of the features we are not interested in (denoted by features in set C). This makes it such that the partial dependence function shows the relationship between the features we do care about (which we denote by buying in set S) and the predicted outcome. By marginalizing over the other features, we get a function that depends only on features in S. This makes it easy to understand how varying a specific feature influences model predictions. For example, here are 3 PDP plots for Temperature, Humidity and Wind Speed as relating to predicted bike sales by a linear model.<\/p>\n<figure class=\"gt gu gv gw gx gy do dp paragraph-image\"><figcaption class=\"ax fk hp hq hr dq do dp hs ht as cx\">PDP\u2019s for temperature, humidity and wind speed for a regression problem where the number of bikes is the outcome. From these plots, it\u2019s clear to see that temperature is an important determiner of how many bikes arre rented, and the hotter it is, the more bikes are rented.<\/figcaption><\/figure>\n<p id=\"d457\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">PDP\u2019s can even be used for categorical features. Here\u2019s one for the effect of season on bike rental.<\/p>\n<figure class=\"gt gu gv gw gx gy do dp paragraph-image\"><figcaption class=\"ax fk hp hq hr dq do dp hs ht as cx\">Partial dependence plot for the effect of seasons on bike rentals<\/figcaption><\/figure>\n<p id=\"18ff\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">For classification, the partial dependence plot displays the probability for a certain class given different values for features. A good way to deal with multi-class problems is to have one PDP per class.<\/p>\n<p id=\"dbb1\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">The partial dependence plot method is useful because it is global. It makes a point about the global relationship between a certain feature and a target outcome across all values of that feature.<\/p>\n<p id=\"0040\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Advantages<\/strong><\/p>\n<p id=\"6457\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Partial Dependence Plots are highly intuitive. The partial dependence function for a feature at a value represents the average prediction if we have all data points assume that feature value.<\/p>\n<p id=\"eab6\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Disadvantages<\/strong><\/p>\n<p id=\"74ac\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">You can really only model a maximum of two features using the partial dependence function.<\/p>\n<p id=\"8348\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Assumption of independence: You are assuming the features that you are plotting are not correlated with any other features. For example, if you are predicting blood pressure off of height and weight, you have to assume that height is not correlated with weight. The reason this is the case is that you have to average over the marginal distribution of weight if you are plotting height (or vice-versa). This means, for example, that you can have very small weights for someone who is quite tall, which you probably not see in your actual dataset.<\/p>\n<p id=\"caa8\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Great! I want to implement a PDP for my model. Where do I start?<\/strong><\/p>\n<p id=\"581e\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><a href=\"https:\/\/scikit-learn.org\/stable\/modules\/partial_dependence.html\" class=\"dc by hu hv hw hx\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Here\u2019s an implementation with with scikit-learn<\/a>.<\/p>\n<p id=\"74c4\" class=\"hy hz ef at ia b ib ja id jb if jc ih jd ij je il\">Permutation feature importance is a way to measure the importance of a feature by calculating change in a model\u2019s prediction error after permuting the feature. A feature is \u201cimportant\u201d if permuting its values increases the model error, and \u201cunimportant\u201d if permuting the values leaves the model error unchanged.<\/p>\n<p id=\"3f97\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">The algorithm works as follows:<\/p>\n<pre class=\"gt gu gv gw gx jm jn cm\"><span id=\"60de\" class=\"jo in ef at jp b fk jq jr r js\">input: a model f, feature matrix X, target vector Y and error measure L(y, f)<\/span><span id=\"ebdd\" class=\"jo in ef at jp b fk jt ju jv jw jx jr r js\">1. Estimate the original model error e\u2070 = L(Y, f(x))<\/span><span id=\"c007\" class=\"jo in ef at jp b fk jt ju jv jw jx jr r js\">2. For each feature j:<\/span><span id=\"dc3e\" class=\"jo in ef at jp b fk jt ju jv jw jx jr r js\">- Generate feature matrix X' by permuting feature j in the original feature matrix X.<\/span><span id=\"719c\" class=\"jo in ef at jp b fk jt ju jv jw jx jr r js\">- Estimate the new error e\u00b9=L(Y, f(X')) based off the model's predictions for the new data X'<\/span><span id=\"cce4\" class=\"jo in ef at jp b fk jt ju jv jw jx jr r js\">- Calculate the permutation feature importance FI=e\u00b9\/e\u2070. You can also use e\u00b9-e\u2070.<\/span><span id=\"8b3a\" class=\"jo in ef at jp b fk jt ju jv jw jx jr r js\">3. Sort the features by descending FI.<\/span><\/pre>\n<p id=\"a37e\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">After you have sorted the features by descending FI, you can plot the results. Here is the permutation feature importance plot for the bike rentals problem.<\/p>\n<figure class=\"gt gu gv gw gx gy do dp paragraph-image\"><figcaption class=\"ax fk hp hq hr dq do dp hs ht as cx\">Permutation feature importance plot for bike rentals. You can clearly see that the model sees temperature and days since 2011 as the most important features.<\/figcaption><\/figure>\n<p id=\"ed73\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Advantages<\/strong><\/p>\n<p id=\"220d\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Interpretability: Feature importance is just how much the error increases when a feature is distorted. This is easy to explain and visualize.<\/p>\n<p id=\"8522\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Permutation feature importance provides global insight into the model\u2019s behavior.<\/p>\n<p id=\"b924\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Permutation feature importance does not require training a new model or retraining an existing model, simply shuffling features around.<\/p>\n<p id=\"49f9\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Disadvantages<\/strong><\/p>\n<p id=\"1506\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">It\u2019s not clear whether you should use training or test data for your plot.<\/p>\n<p id=\"f423\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">If features are correlated, you can get unrealistic samples after permuting features, biasing the outcome.<\/p>\n<p id=\"eb47\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Adding a correlated feature to your model can decrease the importance of another feature.<\/p>\n<p id=\"94e2\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Great! I want to implement Permutation Feature Importance for my model. Where do I start?<\/strong><\/p>\n<p id=\"f46f\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><a href=\"https:\/\/eli5.readthedocs.io\/en\/latest\/blackbox\/permutation_importance.html\" class=\"dc by hu hv hw hx\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Here\u2019s an implementation with the eli5 model in Python.<\/a><\/p>\n<p id=\"2dd0\" class=\"hy hz ef at ia b ib ja id jb if jc ih jd ij je il\">ALE plots are a faster and unbiased alternative to partial dependence plots. They measure how features influence the prediction of a model. Because they are unbiased, they handle correlated features much better than PDP\u2019s do.<\/p>\n<p id=\"0aa6\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">If features of a machine learning model are correlated, the partial dependence plot cannot be trusted, because you can generate samples that are very unlikely in reality by varying a single feature. ALE plots solve this problem by calculating \u2013 also based on the conditional distribution of the features \u2013 differences in predictions instead of averages. One way to interpret this is by thinking of the ALE as saying<\/p>\n<blockquote class=\"ka kb kc\">\n<p id=\"97bc\" class=\"hy hz ef kd ia b ib ic id ie if ig ih ii ij ik il\">\u201cLet me show you how the model predictions change in a small \u201cwindow\u201d of the feature.\u201d<\/p>\n<\/blockquote>\n<p id=\"8995\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Here\u2019s a visual interpretation of what is going on in an ALE plot.<\/p>\n<figure class=\"gt gu gv gw gx gy do dp paragraph-image\"><figcaption class=\"ax fk hp hq hr dq do dp hs ht as cx\">ALE plot calculation. Divide x1 into \u201cwindows\u201d. For all the points in each window, calculate the difference in prediction when we replace each point with the upper and lower bounds of the window.<\/figcaption><\/figure>\n<p id=\"1282\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">This can also be done with two features.<\/p>\n<figure class=\"gt gu gv gw gx gy do dp paragraph-image\"><figcaption class=\"ax fk hp hq hr dq do dp hs ht as cx\">2D-ALE plot. Same general idea as the 1D plot, but instead of using the upper and lower \u201cwindow\u201d bounds, you calculate the difference in prediction over the four corners of the square in the grid.<\/figcaption><\/figure>\n<p id=\"b2e7\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Once you have computed the differences in predictions over each window, you can generate an ALE plot.<\/p>\n<figure class=\"gt gu gv gw gx gy do dp paragraph-image\"><figcaption class=\"ax fk hp hq hr dq do dp hs ht as cx\">ALE plot for bike rentals. Clearly, temperature has a strong effect on bike rental prediction, but you can also see that if humidity is above a certain point, it has a strong effect on bike rental prediction as well.<\/figcaption><\/figure>\n<p id=\"9004\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">ALE plots can also be done for categorical features.<\/p>\n<figure class=\"gt gu gv gw gx gy do dp paragraph-image\"><figcaption class=\"ax fk hp hq hr dq do dp hs ht as cx\">ALE plot for month and bike rentals. January and March seem to have little effect on the number of bikes rented, but December and November seem to have a large negative effect.<\/figcaption><\/figure>\n<p id=\"3bb6\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Advantages<\/strong><\/p>\n<p id=\"3aa9\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">ALE plots are unbiased, meaning they work with correlated features.<\/p>\n<p id=\"46c7\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">ALE plots are computationally fast to compute.<\/p>\n<p id=\"3d0d\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">The interpretation of the ALE plot is clear.<\/p>\n<p id=\"83b4\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Disadvantages<\/strong><\/p>\n<p id=\"8174\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">The implementation of ALE plots is complicated and difficult to understand.<\/p>\n<p id=\"5928\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Interpretation still remains difficult if features are strongly correlated.<\/p>\n<p id=\"554f\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Second-order or 2D ALE plots can be hard to interpret.<\/p>\n<p id=\"b6d6\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Generally, it is better to use ALE\u2019s over PDP\u2019s, especially if you expect correlated features.<\/p>\n<p id=\"3537\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Great! I want to implement ALE\u2019s for my model. Where do I start?<\/strong><\/p>\n<p id=\"cb0a\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><a href=\"https:\/\/github.com\/blent-ai\/ALEPython\" class=\"dc by hu hv hw hx\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Here\u2019s a library that provides an ALE implementation.<\/a><\/p>\n<p id=\"3beb\" class=\"hy hz ef at ia b ib ja id jb if jc ih jd ij je il\">Individual Conditional Expectation (ICE) plots display one line per data point. It produces a plot that shows how the model\u2019s prediction for a data point changes as a feature varies across all data points in a set. For the plot below, you can see the ICE plots for varying temperature, humidity and wind speed across all instances in the training set bike rental data.<\/p>\n<figure class=\"gt gu gv gw gx gy do dp paragraph-image\"><figcaption class=\"ax fk hp hq hr dq do dp hs ht as cx\">ICE plot for bike-sharing<\/figcaption><\/figure>\n<p id=\"2d01\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Looking at this plot, you may ask yourself: what is the point of looking at an ICE plot instead of a PDP? It seems much less interpretable.<\/p>\n<p id=\"fb8d\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">PDPs can only show you what the average relationship between what a feature and a prediction looks like. This only works well if the interactions between the features for which the PDP is calculated and the other features are uncorrelated, but in the case of strong, correlated interactions, the ICE plot will be more insightful.<\/p>\n<p id=\"485c\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Advantages<\/strong><\/p>\n<p id=\"2b6c\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Like PDP plots, ICE plots are very intuitive to understand.<\/p>\n<p id=\"12c1\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">ICE plots can uncover heterogeneous relationships better than PDP plots can.<\/p>\n<p id=\"344c\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Disadvantages<\/strong><\/p>\n<p id=\"2bec\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">ICE curves can only display one feature at a time.<\/p>\n<p id=\"99bd\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">The plots generated by this method can be hard to read and overcrowded.<\/p>\n<p id=\"135c\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Great! I want to implement ICE for my model. Where do I start?<\/strong><\/p>\n<p id=\"1446\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><a href=\"http:\/\/savvastjortjoglou.com\/intrepretable-machine-learning-nfl-combine.html\" class=\"dc by hu hv hw hx\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Here\u2019s an overview of interpretability with an ICE implementation.<\/a><\/p>\n<p id=\"34a2\" class=\"hy hz ef at ia b ib ja id jb if jc ih jd ij je il\">A surrogate model is an interpretable model (such as a decision tree or linear model) that is trained to approximate the predictions of a black box. We can understand the black box better by interpreting the surrogate model\u2019s decisions.<\/p>\n<p id=\"561c\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">The algorithm for generating a surrogate model is straightforward.<\/p>\n<pre class=\"gt gu gv gw gx jm jn cm\"><span id=\"818b\" class=\"jo in ef at jp b fk jq jr r js\">1. Select a dataset X that you can run your black box model on.<\/span><span id=\"ead0\" class=\"jo in ef at jp b fk jt ju jv jw jx jr r js\">2. For the selected dataset X, get the predictions of your black box model. <\/span><span id=\"b97f\" class=\"jo in ef at jp b fk jt ju jv jw jx jr r js\">3. Select an interpretable model type (e.g. linear model or decision tree)<\/span><span id=\"afaa\" class=\"jo in ef at jp b fk jt ju jv jw jx jr r js\">4. Train the interpretable model on the dataset X and the black box's predictions. <\/span><span id=\"fafe\" class=\"jo in ef at jp b fk jt ju jv jw jx jr r js\">5. Measure how well the surrogate model replicates the predictions of the black box model. <\/span><span id=\"1c10\" class=\"jo in ef at jp b fk jt ju jv jw jx jr r js\">6. Interpret the surrogate model.<\/span><\/pre>\n<p id=\"d329\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">One way to measure how well the surrogate replicates the black box through the R-squared metric:<\/p>\n<figure class=\"gt gu gv gw gx gy do dp paragraph-image\"\/>\n<p id=\"8e49\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">The R-squared metric is a way to measure the variance captured by the surrogate model. An R-squared value close to 1 implies the surrogate model captures the variance well, and close to 0 implies that it is capturing very little variance, and not explaining the black box model well.<\/p>\n<p id=\"42e6\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Advantages<\/strong><\/p>\n<p id=\"3a99\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">This approach is intuitive: you are learning what the black box model thinks is important by approximating it.<\/p>\n<p id=\"7a97\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Easy to measure: It\u2019s clear how well the interpretable model performs in approximating the black box through the R-squared metric.<\/p>\n<p id=\"2d8f\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Disadvantages<\/strong><\/p>\n<p id=\"7c7c\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">The linear model may not approximate the black box model well.<\/p>\n<p id=\"e28e\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">You are drawing conclusions about the black box model and not the actual data, as you are using the black box\u2019s model predictions as labels without seeing the ground truth.<\/p>\n<p id=\"4e8d\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Even if you do approximate the black box model well, the explainability of the \u201cinterpretable\u201d model may not actually represent what the black box model has learned.<\/p>\n<p id=\"64e4\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">It may be difficult to explain the interpretable model.<\/p>\n<p id=\"3981\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Great! I want to implement a surrogate model.Where do I start?<\/strong><\/p>\n<p id=\"cd53\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><a href=\"http:\/\/savvastjortjoglou.com\/intrepretable-machine-learning-nfl-combine.html\" class=\"dc by hu hv hw hx\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Here\u2019s an overview of interpretability with a surrogate model implementation.<\/a><\/p>\n<p id=\"1809\" class=\"hy hz ef at ia b ib ja id jb if jc ih jd ij je il\">As machine learning becomes more prominent in daily life, the future of interpretability is more important than ever before. I believe a few trends will categorize the future of interpretability, and this will shape how we interact with AI models in the future.<\/p>\n<p id=\"e24f\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Model agnostic interpretability focus<\/strong><\/p>\n<p id=\"2526\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">All the trends in deep learning research point to the fact that deep networks are not saturating with our current computing and data limits. It\u2019s important to realize that as our models get deeper and deeper in everything from image recognition to text generation, there is a need for methods that can provide interpretability across all types of models. The generalizability aspect will become more and more useful the more machine learning takes a hold in different fields. The methods I discussed in this blog post are a start, but we need to take interpretability more seriously as a whole to better understand why the machine learning systems powering our day-to-day are making the decisions they do.<\/p>\n<p id=\"4305\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Models that explain themselves<\/strong><\/p>\n<p id=\"f297\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">One trend that I have not seen take hold in most ML systems that I believe will exist in the future is the idea of a self-explainable model. Most systems today simply make a decision with reasons that are opaque to the user. In the future, I believe that will change. If a self-driving car makes a decision to stop, we will know why. If Alexa cannot understand our sentence, it will tell us in specific detail what went wrong and how we can phrase our query more clearly. With models that explain themselves, we can better understand how the ML systems in our lives work.<\/p>\n<p id=\"8ab1\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Increased model scrutiny<\/strong><\/p>\n<p id=\"6662\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Finally, I believe that we as a society have pushed black-box model scrutiny under the rug. We do not understand the decisions that our models are making, and that doesn\u2019t seem to be bothering anyone in particular. This will have to change in the future. Engineers and Data Scientists will be held accountable as models start to make mistakes, and this will lead to a trend where we examine the decisions our model makes with the same rigor we would a dataset that the model is trained on.<\/p>\n<p id=\"6489\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">I hope you enjoyed this post. I certainly found it illuminating to write, and I hope it helps you with your studies or research in the field of machine learning.<\/p>\n<p id=\"ab73\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\"><strong class=\"ia jl\">Works Cited:<\/strong><\/p>\n<p id=\"5319\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">Most of the examples here inspired from the excellent <a href=\"https:\/\/christophm.github.io\/interpretable-ml-book\/\" class=\"dc by hu hv hw hx\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Interpretable Machine Learning<\/a> book.<\/p>\n<p id=\"9d5c\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">(Molnar, Christoph. \u201cInterpretable machine learning. A Guide for Making Black Box Models Explainable\u201d, 2019. https:\/\/christophm.github.io\/interpretable-ml-book\/)<\/p>\n<p id=\"2913\" class=\"hy hz ef at ia b ib ic id ie if ig ih ii ij ik il\">I highly encourage you to buy it if you wish to further your knowledge in the topic.<\/p>\n<\/div>\n<p>[ad_2]<br \/>\n<br \/><a href=\"https:\/\/towardsdatascience.com\/an-overview-of-model-explainability-in-modern-machine-learning-fc0f22c8c29a?gi=f1df5a9f2971\" target=\"_blank\" rel=\"noopener\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Towards a better understanding of why machine learning models make the decisions they do, and why it matters Photo by Chris Ried on Unsplash Model explainability is one of the most important problems in machine learning today. It\u2019s often the case that certain \u201cblack box\u201d models such as deep neural networks are deployed to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":632,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_post_was_ever_published":false},"categories":[94,92],"tags":[],"class_list":["post-631","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence","category-data-science"],"blocksy_meta":[],"jetpack_featured_media_url":"https:\/\/e928cfdc7rs.exactdn.com\/info\/uploads\/sites\/3\/2019\/12\/An-overview-of-model-explainability-in-modern-machine-learning-scaled.jpeg?strip=all","jetpack_shortlink":"https:\/\/wp.me\/p2TFCd-ab","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/posts\/631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/comments?post=631"}],"version-history":[{"count":1,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/posts\/631\/revisions"}],"predecessor-version":[{"id":652,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/posts\/631\/revisions\/652"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/media\/632"}],"wp:attachment":[{"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/media?parent=631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/categories?post=631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.danielparente.net\/en\/wp-json\/wp\/v2\/tags?post=631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}