{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/iBFviTzvnvHxI1h9Dqaa/AwQZwSRjcC3CtnpWdLtl/jx5MRPdv1-12.js"],
  "sourcesContent": ["import{jsx as e,jsxs as t}from\"react/jsx-runtime\";import{Link as n}from\"framer\";import{motion as a}from\"framer-motion\";import*as i from\"react\";export const richText=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"h3\",{children:\"A practical guide to the kind of problems you should be looking at\"}),/*#__PURE__*/e(\"p\",{children:\"I haven't seen the questions, \u201Cwhat are the problems we should assume can be solved with machine learning? or \\\"what are the problems we should assume a neural network is able to solve?\u201D addressed much.\"}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"There are theories like PAC learning and AIX which, at a glance, seem to revolve around this as it pertains to machine learning in general, but if actually applied in practice won\u2019t yield any meaningful answers. However, when someone asks me this question about a specific problem, I can often give a fairly reasonable and confident answer provided I can take a look at the data. Thus, I thought it might be helpful to lay down the heuristic that generates such answers. I, by no means, claim these are precise or evidence-based in the scientific sense, but think they might be helpful or perhaps even a good starting point for further discussion on the subject.\"]}),/*#__PURE__*/e(\"h3\",{children:\"1. A Neural Network Can Almost Certainly Solve a Problem if Another ML Algorithm Has Already Succeeded\"}),/*#__PURE__*/t(\"p\",{children:[\"Given a problem that can be solved by an existing ML technique, we can assume that a somewhat generic neural network, if allowed to be significantly larger, can also solve it. For example, playing chess decently is also a problem already solved. It can be done using small decision trees and a few very simple custom search heuristics (here's an \",/*#__PURE__*/e(n,{href:\"https://github.com/AdnanZahid/Chess-AI-TDD\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"example\"})}),\"). So we should assume that a fairly generic neural network, using significantly more parameters than the original DT based models, can be trained to play chess equally well.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"Indeed, this seems to be \",/*#__PURE__*/e(n,{href:\"https://github.com/pbaer/neural-chess\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"the case\"})}),\", you can play chess using a fairly generic fully connected network, without requiring any additional built in heuristics or an architecture specialized for this purpose. Or, take any \u201Ctoy\u201D datasets such as those on UCI, find the best fitting classical ML model using a library like scikit-learn, then try using \",/*#__PURE__*/e(n,{href:\"https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPRegressor.html\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"the fairly simple neural network\"})}),\" that sckit-learn provides. If you set the hidden_layer_sizes to be large enough, you will almost certainly get matching performance no matter what model you are comparing against.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"This assumption doesn\u2019t always hold because:\"]}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Depending on the architecture, a neural network could easily be unable to optimize a given problem. E.g., playing chess might be impossible for a convolutional network with a large window and step size, even if it\u2019s very big.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Certain ML techniques have a lot of built-in heuristics that might be hard to learn for a neural network. The existing ML technique must not have any critical heuristics built into it. Or, at least, you have to be able to include the same heuristics into your neural network model.\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"As we are focusing mainly on generalizable neural network architectures (e.g., a fully connected net, which is what most people think of initially when they hear the phrase, \u201Cneural network\u201D), point a) is pretty irrelevant. Given that most heuristics are applied equally well to any model, even for something like chess, and that size can sometimes be enough for the network to be able to just learn the heuristic. This rule holds almost every time. I can\u2019t really think of a counter example here. Maybe some specific types of numeric projections ? This is a rather boring first rule, yet worth stating as a starting point to build from.\"]}),/*#__PURE__*/e(\"h3\",{children:\"2. A Neural Network Can Almost Certainly Solve a Problem Very Similar to Ones Already Solved\"}),/*#__PURE__*/e(\"p\",{children:\"Let\u2019s say you have a model for predicting the risk of a given creditor based on a few parameters, e.g., current balance, previous credit record, age, driver license status, criminal record, yearly income, length of employment, {various information about current economic climate}, number of children, marital status, anime websites visited in the last 60 days. Let\u2019s also say this model \u201Csolves\u201D your problem, i.e., it predicts risk better than 80% of your human analysts. However, GDPR rolls along and you can no longer legally view some of your customers\u2019 Internet history by buying that data so you need to build a new model for those customers.\"}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"Your inputs are now truncated after and the customer\u2019s online anime browsing history is no longer available (or rather admittedly usable). Is it safe to assume you can still build a reasonable model to solve this problem ? The answer is almost certainly yes. Given our knowledge of the world, we can safely assume someone\u2019s anime browsing history is not that relevant to their credit rating as some of those other parameters.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"As another example, assume you know someone else is using a model, but their data is slightly different from yours. You know of a US-based snake-focused pet shop that uses previous purchases to recommend products and they\u2019ve told you it\u2019s done quite well for their bottom line. Let's say you are a UK-based parrot-focused pet shop, can you trust their model or a similar one to solve your problem, if trained on your data ? Again, the right answer is probably yes, because the data is similar enough. That\u2019s why building a product recommendation algorithm was a hot topic 20 years ago, but nowadays everyone and their mom can just get a Wordpress plugin for it and get close to Amazon\u2019s level.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"Or, to get more serious, let\u2019s say you have a given algorithm for detecting breast cancer that\u2014if trained on 100,000 images with follow-up checks to confirm the true diagnostics\u2014performs better than an average radiologist. Can you assume that, given the ability to make it larger, you can build a model to detect cancer in other types of soft tissue, also better than a radiologist? Once again, the answer is yes. The argument here is longer, because we aren\u2019t so certain, mainly because of the lack of data. I\u2019ve spent more or less an entire article arguing that the answer would still be yes.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"In NLP, the exact same neural network architectures seem to be decently good at doing translation or text generation in any language as long as it belongs to the Indo-European family of languages and there is a significant corpus of data for it (i.e., equivalent to that used for training the extant models for English).\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"Modern NLP techniques seem to be able to tackle all language families, and they are doing so with less and less data. To some extent, however, the similarity of the data and the amount of training examples are tightly linked to the ability of a model to quickly generalize in many languages.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"Or looking at image recognition and object detection/boxing models, the main bottleneck consists in large amounts of well-labeled data, not the contents of the image. Edge cases exist, but generally all types of objects and images can be recognized and classified if enough examples are fed into an architecture originally designed for a different image task (e.g., a conv residual network designed for ImageNet).\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"Moreover, given a network trained on ImageNet, we can keep the initial weights and biases (essentially what the network \u201Chas learned\u201D) instead of starting from scratch, and it will be able to \u201Clearn\u201D on different datasets much faster from that starting point.\"]}),/*#__PURE__*/e(\"h3\",{children:\"3. A Neural Network Can Solve Problems That a Human Can Solve With Small-Sized Data Points and Little to No Context\"}),/*#__PURE__*/e(\"p\",{children:\"Let\u2019s say we have 20x20px black and white images of two objects never seen before; they are \u201Cobviously different,\u201D but not known to us. It\u2019s reasonable to assume that, given a bunch of training examples, humans would be reasonably good at distinguishing the two.\"}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"It is also reasonable to assume, given a bunch of examples (let\u2019s say 100), that almost any neural network of millions of parameters would ace this problem like a human.\",/*#__PURE__*/e(\"br\",{}),\"You can visualize this in terms of amounts of information to learn. In this case, we have 400 pixels of 255 values each, so it\u2019s reasonable to assume every possible pattern could be accounted for with a few million parameters in our equation. But what \u201Csmall data points\u201D means here is the crux of this definition. In short, \u201Csmall\u201D is a function of:\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The size of your model. The bigger a model, the more complex the patterns it can learn and, thus ,the bigger your possible inputs/outputs.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The granularity of the answer (output). E.g., 1,000 classes vs 10 classes, or an integer range from 0 to 1,000 vs one from 0 to 100,000. In this case 2.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The size of the input. In this case 400, since we have a 20x20 image.\"})})]}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/t(\"p\",{children:[\"Take a classic image classification task like MNIST. Although a few minor improvements have been made, the state-of-the-art for MNIST \",/*#__PURE__*/e(n,{href:\"https://paperswithcode.com/sota/image-classification-on-mnist\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"hasn\u2019t progressed much\"})}),'. The last 8 years have yielded an improvement from ~98.5% to ~99.4%, both of which are well within the usual \"',/*#__PURE__*/e(n,{href:\"https://www.quora.com/What-is-human-accuracy-on-the-MNIST-test-set-Are-there-any-quotable-sources\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"human error range\"})}),'.\" Compare that to something much bigger in terms of input and output size, like ImageNet, ',/*#__PURE__*/e(n,{href:\"https://paperswithcode.com/sota/image-classification-on-imagenet\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"where the last 8 years have seen a jump from 50% to almost 90%\"})}),\". Indeed, even with pre-CNN techniques, \",/*#__PURE__*/e(n,{href:\"https://www.semanticscholar.org/paper/Efficient-Handwritten-Digit-Recognition-based-on-of-Ebrahimzadeh-Jampour/b44c7a87888b46e37bae571db7e2355a1eeca46d\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"MNIST is basically solvable\"})}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"But even having defined \u201Csmall\u201D as a function of the above, we don\u2019t have the formula for the actual function. I think that is much harder, but we can come up with a \u201Ccheap\u201D answer that works for most cases\u2014indeed, it\u2019s all we need:\"]}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"A given task can be considered small when other tasks of equal or larger input and output size have already been solved via machine learning with more than one architecture on a single GPU.\"})})}),/*#__PURE__*/e(\"p\",{children:\"This might sound like a silly heuristic, but it holds surprisingly well for most \u201Ceasy\u201D machine learning problems. For instance, the reason many NLP tasks are now more advanced than most \u201Cvideo\u201D tasks is size, despite the tremendous progress on images in terms of network architecture (which are much closer to the realm of video). The input & output size for meaningful tasks on videos is much larger; on the other hand, even though NLP is in a completely different domain, it\u2019s much closer size-wise to image processing.\"}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"Then, what does \u201Clittle to no context\u201D mean?\",/*#__PURE__*/e(\"br\",{}),\"\u200D\"]}),/*#__PURE__*/e(\"p\",{children:\"This is a harder one, but we can rely on examples with \u201Clarge\u201D and \u201Csmall\u201D amounts of context.\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"Predicting the stock market likely requires a large amount of context. One has to be able to dig deeper into the companies to invest in; check on market fundamentals, recent earnings calls, the C-suite\u2019s history, understand the company\u2019s product. They'll also perhaps get some information from its employees and customers and, if possible, get insider information about upcoming sales and mergers, etc.\",/*#__PURE__*/e(\"br\",{}),\"  \u200D\"]})})}),/*#__PURE__*/e(\"p\",{children:\"You can try to predict the stock market based purely on indicators about the stock market, but this is not the way most humans are solving the problem.\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"On the other hand, predicting the yield of a given printing machine based on temperature and humidity in the environment could be solved via context, at least to some extent. An engineer working on the machine might know that certain components behave differently in certain conditions. In practice, however, an engineer would basically let the printer run, change the conditions, look at the yield, then come up with an equation. So given that data, a machine learning algorithm can also probably come up with an equally good solution, or an even better one.\",/*#__PURE__*/e(\"br\",{}),\"  \u200D\"]})})}),/*#__PURE__*/t(\"p\",{children:[\"In that sense, an ML algorithm would likely produce results similar to a mathematician in \",/*#__PURE__*/e(n,{href:\"https://blog.cerebralab.com/If_Van_der_Waals_was_a_neural_network\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"solving the equation\"})}),\", since the context would be basically non-existent for the human.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"There are certainly some limits. Unless we test our machine at 4,000 celsius, the algorithm has no way of knowing that the yield will be 0 because the machine will melt/ However, an engineer might suspect that.\",/*#__PURE__*/e(\"br\",{}),\"\u200D\"]}),/*#__PURE__*/e(\"p\",{children:\"So, I can formulate this 3rd principle as: A generic neural network can probably solve a problem if:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"A human can solve it\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Tasks with similarly sized outputs and inputs have already been solved by an equally sized network\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"Most of the relevant contextual data a human would have are included in the input data of our algorithm.\",/*#__PURE__*/e(\"br\",{}),\"  \u200D\"]})})]}),/*#__PURE__*/e(\"p\",{children:\"However, this still requires evaluating against human performance. But a lot of applications of machine learning are interesting precisely because they can solve problems humans can\u2019t. Thus, I think we can go even deeper.\"}),/*#__PURE__*/e(\"h3\",{children:\"4. A Neural Network COULD Solve a Problem When We Are Reasonably Sure It\u2019s Deterministic, We Provide Any Relevant Context as Part of the Input Data, and the Data is Reasonably Small\"}),/*#__PURE__*/e(\"p\",{children:\"Here I\u2019ll come back to one of my favorite examples\u2014protein folding. One of the few problems in science where data is readily available, where interpretation and meaning are not confounded by large amounts of theoretical baggage, and where the size of a data point is small enough based on our previous definition. You can boil down the problem to:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Around 2,000 input features (amino acids in the tertiary structure), though this means our domain will only cover 99.x% of proteins rather than literally all of them.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Circa 18,000 corresponding output features (number of atom positions in the tertiary structure, aka the shape, needing to be predicted to have the structure).\"})})]}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/e(\"p\",{children:\"This is one example. Like most NLP problems, where \u201Csize\u201D becomes very subjective, we could easily argue one-hot-encoding is required for this type of input; then the size suddenly becomes 40,000 (there\u2019s 20 proteinogenic amino acids that can be encoded by DNA) or 42,000 (if you care about selenoproteins and 44,000 if you care about niche proteins that don\u2019t appear in eukaryotes).\"}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"It could also be argued that the input & output size is much smaller, since in most cases proteins are much smaller and we can mask & discard most of inputs & outputs for most cases.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"Still, there are plenty of tasks that go from an, e.g., 255x255 pixel image to generate another 255x255 pixel image (style alternation, resolution enhancement, style transfer, contour mapping\u2026 etc). So based on this I\u2019d posit the protein folding data is reasonably small and has been for the last few years.\",/*#__PURE__*/e(\"br\",{}),\"\u200D\"]}),/*#__PURE__*/e(\"p\",{children:\"Indeed, resolution enhancement via neural networks and protein folding via neural networks came about at around the same time (with every similar architecture, mind you). But I digress; I\u2019m mistaking a correlation for the causal process that supposedly generated it. Then again, that\u2019s the basis of most self-styled \u201Cscience\u201D nowadays, so what is one sin against the scientific method added to the pile?\"}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"Based on my own fooling around with the problem, it seems that even a \",/*#__PURE__*/e(n,{href:\"https://github.com/George3d6/focusfold\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"very simple model\"})}),\", simpler than something like VGG, can learn something \u201Dmeaningful\u201D about protein folding. It can make guesses better than random and often enough come within 1% of the actual position of the atoms, if given enough (135 millions) parameters and half a day of training on an RTX2080. I can\u2019t be sure about the exact accuracy, since apparently the exact evaluation criterion here is pretty hard to find and/or understand and/or implement for people that aren\u2019t domain experts.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"To my knowledge the first widely successful protein folding network, \",/*#__PURE__*/e(n,{href:\"https://deepmind.com/blog/article/AlphaFold-Using-AI-for-scientific-discovery\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"AlphaFold\"})}),\", whilst using some domain-specific heuristics, did most of the heavy lifting using a residual CNN, an architecture designed for categorizing images, something as widely unrelated with protein folding as one can think of.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"That is not to say any architecture could have tackled this problem as well. It rather means we needn\u2019t build a whole new technique to approach this type of problem. It\u2019s the kind of problem a neural network can solve, even though it might require a bit of looking around for the exact network that can do it.\",/*#__PURE__*/e(\"br\",{}),\"\u200D\"]}),/*#__PURE__*/e(\"p\",{children:\"The other important thing here is that the problem seems to be deterministic. Namely:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"We know peptides can be folded into proteins, in the kind of inert environment that most of our models assume, since that\u2019s what we\u2019ve always observed them to do.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"We know that amino acids are one component which can fully describe a peptide.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Since we assume the environment is always the same and we assume the folding process itself doesn\u2019t much alter it, the problem is not a function of the environment (note, obviously in the case of in-vitro folding, in-vivo the problem becomes much harder)\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"The issue arises when thinking about 2), that is to say, we know that the universe can deterministically fold peptides; we know amino acids are enough to accurately describe a peptide. However, the universe doesn\u2019t work with \u201Camino acids,\u201D it works with trillions of interactions between much smaller particles.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"So while the problem is deterministic and self-contained, there\u2019s no guarantee that learning to fold proteins doesn\u2019t entail learning a complete model of particle physics that is able to break down each amino acid into smaller functional components. A few million parameters wouldn\u2019t be enough for that task.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"This is what makes this 4th most generic definition the hardest to apply.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"Some other examples here are things like predictive maintenance where machine learning models are \",/*#__PURE__*/e(n,{href:\"https://sustainability.google/projects/machine-learning/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"being actively used\"})}),\" to tackle problems human can\u2019t, at any rate not without mathematical models. For these types of problems, there\u2019s strong reasons to assume, based on the existing data, that the problems are partially (mostly?) deterministic. There are simpler examples here, but I can\u2019t think of any that, at the time of their inception, didn\u2019t already fall into the previous 3 categories. At least, none that aren\u2019t part of reinforcement learning.\"]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"The vast majority of examples fall within reinforcement learning, where one can solve an impressive amount of problems once they are able to simulate them. People can find optimal aerodynamic shapes, design weird antennas to provide more efficient reception/coverage, beat video games like DOT and Starcraft which are exponentially more complex (in terms of degrees of freedom) than chess or Go.\",/*#__PURE__*/e(\"br\",{}),\"\u200D\"]}),/*#__PURE__*/e(\"p\",{children:\"The problem with RL is that designing the actual simulation is often much more complicated than using it to find a meaningful answer. RL is fun to do but doesn\u2019t often yield useful results. However, edge cases do exist where designing the simulation does seem to be easier than extracting inferences out of it. Besides that, the more simulations advance based on our understanding of efficiently simulating physics (in itself helped by ML), the more such problems will become ripe for the picking.\"}),/*#__PURE__*/e(\"h2\",{children:\"In Conclusion\"}),/*#__PURE__*/t(\"p\",{children:[\"I\u2019ve attempted to provide a few simple heuristics for answering the question, \u201Cwhen should we expect that a neural network can solve a problem?\u201D For which problems should our default hypothesis include their solvability, given enough \",/*#__PURE__*/e(n,{href:\"https://en.wikipedia.org/wiki/Neural_architecture_search\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"architecture searching\"})}),\" and current GPU capabilities? To recap, neural networks can probably solve your problem:\"]}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"[Almost certainty] If other ML models already solved the problem.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"[Very high probability] If a similar problem has already been solved by an ML algorithm, and the differences between that and your problem don\u2019t seem significant.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"[High probability] If the inputs & outputs are small enough to be comparable in size to those of other working ML models \",/*#__PURE__*/e(\"strong\",{children:\"and\"}),\" if we know a human can solve the problem with little context besides the inputs and outputs.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"[Reasonable probability] If the inputs & outputs are small enough to be comparable in size to those of other working ML models AND we have a high certainty about the deterministic nature of the problem (that is to say, about the inputs being sufficient to infer the outputs).\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"\u200D\",/*#__PURE__*/e(\"br\",{}),\"I am not sure about any of these rules, but this comes back to the problem of being able to say something meaningful. PACL can give us almost perfect certainty and is mathematically valid but it breaks down beyond simple classification problems.\",/*#__PURE__*/e(\"br\",{}),\"\u200D\"]}),/*#__PURE__*/e(\"p\",{children:\"Coming up with these kinds of rules doesn\u2019t provide an exact degree of certainty and they are derived from empirical observations. However, I think they can actually be applied to real world problems. Indeed, these are, to some extent, the rules I do apply to real world problems, when a customer or friend asks me if a given problem is \u201Cdoable\u201D. These seem to be pretty close to the rules I\u2019ve noticed other people using when thinking about what problems can be tackled. I\u2019m hoping that this could serve as an actual practical guide for newcomers to the field, or for people that don\u2019t want to get too involved in ML itself, but have some datasets they want to work on.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});export const richText1=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"User Question: I\u2019m just now beginning to learn AI, but don\u2019t really know much about it. What would be the best way for me to learn?\"})})}),/*#__PURE__*/e(\"p\",{children:\"Our premise is that, if you have data then you can be a data scientist or, what we call, a citizen data scientist in the sense that if you have data and know the questions that you want to ask with this data, then you have everything you need to get started. MindsDB is meant for you to actually build machine learning models through MindsDB and get explanations from it. It tries to change the paradigm from being someone who knows AI or being someone who learns machine learning to being someone who understands what the important questions to answer and what data they should get to answer those specific questions. The machine learning framework and explainability are there for you when you can get to that place where you understand the questions you need to ask and the data you need to answer those questions.\"}),/*#__PURE__*/e(\"p\",{children:\"As you get more confident with that part then you can start diving deeper into how these models are being built. We expose this to you through the fact that MindsDB is open source and that we have a framework that allows you to dive deep into how this happens, which is MindsDB Lightwood.\"}),/*#__PURE__*/e(\"p\",{children:\"So the advice I have for someone who is just starting is to first try to think of or find a data set that is close to you. There are many places, like Kaggle, to find data sets that are interesting to you or to what your domain expertise is. After you have a data set, try MindsDB. Try it from the MindsDB Graphical User Interface or directly from SQL, and then once you feel comfortable with what you\u2019re getting there (also feel free to provide feedback) you can go into MindsDB Lightwood and try to change the weights of some of the vector representations or how these mixers are being built, because we want everyone to understand what\u2019s happening inside of our AI models.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});export const richText2=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"As MindsDB continues to grow and usage of our technology increases so does our community. One of the first questions new MindsDB users ask is how they can get involved in the MindsDB community. We\u2019re thrilled that our users want to engage with our product and community and provide them with several ways they can get involved.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"To get involved in the MindsDB community, you can:\"}),\" \u200D\",/*#__PURE__*/e(\"strong\",{children:\"\u200D\"})]}),/*#__PURE__*/e(\"h2\",{children:\"Download MindsDB\"}),/*#__PURE__*/e(\"p\",{children:\"The easiest way to get involved in the MindsDB community is to download MindsDB. Downloading MindsDB lets you understand exactly what MindsDB does and can do for you. Understanding the product makes engaging with our community a much more valuable experience.\"}),/*#__PURE__*/t(\"p\",{children:[\"You can download MindsDB through our \",/*#__PURE__*/e(n,{href:\"https://github.com/mindsdb/mindsdb\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Github repo\"})}),\" or by going to our \",/*#__PURE__*/e(n,{href:\"https://docs.mindsdb.com/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"docs\"})}),\".\"]}),/*#__PURE__*/e(\"h2\",{children:\"Get Trained\"}),/*#__PURE__*/e(\"p\",{children:\"Our training course teaches you machine learning and MindsDB in a matter of hours. Successful completion of our training course gives you access to exclusive opportunities. Opportunities include access to special events and workshops, advanced training, and free MindsDB merchandise.\"}),/*#__PURE__*/e(\"h2\",{children:\"Contribute on Github\"}),/*#__PURE__*/t(\"p\",{children:[\"As an open source project, we have an active community of contributors on Github. Our contributors are developers and passionate technologists who use MindsDB for a host of use cases. They \",/*#__PURE__*/e(n,{href:\"https://github.com/mindsdb/mindsdb\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"contribute to our repo\"})}),\" because they want to take part in helping develop the MindsDB framework.\"]}),/*#__PURE__*/e(\"p\",{children:\"By contributing to our repo, you increase your familiarity with MindsDB and can interact with other contributors directly.\"}),/*#__PURE__*/e(\"h2\",{children:\"Attend Events\"}),/*#__PURE__*/e(\"p\",{children:\"You can find the MindsDB team at various technology events and conferences throughout the year. We also host our own events in cities around the world. While at these events, you can meet and connect with other users as well as members of our team. We announce both the external events we attend and the ones we host through our newsletter. Signing up for it will keep you informed on where we\u2019ll be and when.\"}),/*#__PURE__*/e(\"h2\",{children:\"Join Our Community Forum\"}),/*#__PURE__*/t(\"p\",{children:[\"The MindsDB community lives on \",/*#__PURE__*/e(n,{href:\"https://github.com/mindsdb/mindsdb\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"github.com/mindsdb/mindsdb/discussions\"})}),\". This forum gives you the opportunity to chat with other members of the MindsDB community. You can also share ideas and best practices, ask questions, discuss your projects, and provide feedback. Moderated by MindsDB\u2019s engineers, joining the MindsDB community forum gives you direct access to MindsDB\u2019s development team.\"]}),/*#__PURE__*/e(\"h2\",{children:\"Connect on Social Media\"}),/*#__PURE__*/t(\"p\",{children:[\"We\u2019re on \",/*#__PURE__*/e(n,{href:\"https://www.facebook.com/mindsdb\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Facebook\"})}),\", \",/*#__PURE__*/e(n,{href:\"https://www.linkedin.com/company/mindsdb1\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Linkedin\"})}),\", \",/*#__PURE__*/e(n,{href:\"https://twitter.com/mindsdb\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Twitter\"})}),\", and \",/*#__PURE__*/e(n,{href:\"https://www.youtube.com/channel/UC5_wBOLCWath6q1iTgPPD5A\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"YouTube\"})}),\". We love connecting with our users socially. Follow us on any of those channels to join the conversation. On both Facebook and Twitter, you can send us direct messages and receive prompt responses. On Linkedin, you can learn more about the ways that MindsDB Enterprise is used in production. You can also stay on top of the ways MindsDB helps businesses gain better data insights. Our Youtube page gives you access to how-to videos and a front row seat to presentations we've given.\"]}),/*#__PURE__*/e(\"h2\",{children:\"Attend Webinars\"}),/*#__PURE__*/e(\"p\",{children:\"We host webinars and, by attending them, you\u2019ll have the opportunity to learn new topics that are related to MindsDB. Attending our webinars also lets you ask questions to the webinar host\u2014usually a senior MindsDB team member\u2014during the Q&A section of the webinar. Webinar announcements are made on our social channels and through our newsletter. Make sure you\u2019re following us on social and subscribe to our newsletter to receive updates on when the next one will be.\"}),/*#__PURE__*/e(\"h2\",{children:\"Provide Feedback\"}),/*#__PURE__*/t(\"p\",{children:[\"As an open source solution, we want to continually ensure that our product works in the ways that our users need it to work. Thus, we like maintaining an open feedback loop with our users. We\u2019re always looking for users to provide feedback on how MindsDB works for them, where they think there\u2019s room for improvement, and any additional thoughts they may have on the product. The best way to provide feedback is by either sending an email to \",/*#__PURE__*/e(n,{href:\"https://github.com/mindsdb/mindsdb\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"community@mindsdb.com\"})}),\" with your thoughts or \",/*#__PURE__*/e(n,{href:\"https://www.mindsdb.com/beta-tester\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"signing up to be a beta tester.\"})}),\" Beta testers try new versions of MindsDB before anyone else and provide feedback that helps improve the product.\"]}),/*#__PURE__*/t(\"p\",{children:[\"MindsDB was built to make life easier for developers and those who must make data-driven discussions. We created the avenues mentioned above to make sure that we can do that.  For questions on additional ways to get involved with the MindsDB community, email \",/*#__PURE__*/e(n,{href:\"https://github.com/mindsdb/mindsdb\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"community@mindsdb.com\"})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});export const richText3=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"User question: How do you calculate feature importance (i.e., how do you infer the influence that each feature has on the model\u2019s output) in a way that, undoubtedly, represents the model\u2019s reasoning?\"})})}),/*#__PURE__*/e(\"p\",{children:\"We\u2019re still iterating on this. For the current implementation, the following steps are  important.\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"If you have a way to understand\u2014for a specific prediction\u2014how certain the prediction is, then what you can do is try to get to that prediction without showing some specific features and do that for every feature. You\u2019ll then get a measurement of how much your accuracy metric or your degree of certainty changes as you obfuscate each of the features. This will give you a measurement of how important that specific feature is for that prediction.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"You would like to understand when you show a feature or not, how does the predicted variable shift. How much does that contribute to the value (for example, if you\u2019re trying to predict a numerical value, you can determine how much that changes the prediction).\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"You can then try to iterate a few sigmas one way or another so that you can know how stable the prediction is based on that specific feature.\"})})]}),/*#__PURE__*/e(\"p\",{children:\"The combination of these three things will allow you to understand how important they are as well as how much they contribute. You can do this with any machine learning model. What we understand now from self-aware neural networks is:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"If your neural networks are probabilistic (in the sense that \u2014 as opposed to weights \u2014 you have weight distributions, as you train the model). If the variances of these weights reduce, that means that your model is more certain about having found a global minima. If you try to do the same training by obfuscating one of the features and that sigma grows that means that your model is less likely to learn a global minima without that variable and that also gives you, globally, a degree of certainty that specific feature adds to the model itself.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Lastly, we have developed what we call self-aware neural networks, where what you do is to predict both the variable and error. As such, you can understand by showing a specific feature or not, how much that predicted error changes and that\u2019ll give you another heuristic of the importance of that variable either globally or for this specific prediction.\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Those are the tools we grasp on to build feature importance as well as contributions, or what we call force vector stores, at a specific value.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});export const richText4=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"User Question: How do you make sure that, in the soft XAI observer approach, the observer model is also trustworthy?\"})})}),/*#__PURE__*/e(\"p\",{children:\"What you want to understand in terms of trustworthiness is that these models aren\u2019t perfect. For example, when you think about a trustworthy person, you don\u2019t think that that person is perfect. You consider them a trustworthy person because they tell you when they\u2019re not good, when they\u2019re unlikely to perform well, when they\u2019re likely to be late, etc. You consider this person trustworthy because they\u2019re open. Trustworthiness is about being as open as you can.\"}),/*#__PURE__*/e(\"p\",{children:\"In that sense, what we want to assure through soft XAI is that the user\u2014or the person consuming these predictive capabilities\u2014is aware of when the system can and should be trusted. When the system tells you that it can be trusted, it should also explain that it\u2019s come to this conclusion based on the assumption that you\u2019re feeding it the right data. When you\u2019re feeding it data, it should tell you about any quality issues that it sees and thinks that you should be aware of. Some of these quality issues may have to do with biases.\"}),/*#__PURE__*/e(\"p\",{children:\"For example, let\u2019s say you want to analyze whether or not someone is going to be successful in performing in an MBA program at a given university. You have data on all the students who have applied and their GPAs during the program.  When you have new applicants, you want to understand how they will perform relative to students who have gone through the program so you ask this question of the system. Say the system gives you a prediction that a given individual will likely not perform well in the MBA program, you want to go in and see why the system has come to this prediction.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(n,{href:\"https://www.mindsdb.com/blog/explainable-ai-the-next-frontier-in-human-machine-harmony\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"A trustworthy system\"})}),\" will tell you, \",/*#__PURE__*/e(\"em\",{children:\"\u201Cyou have this data feature (say, gender) and for all the data that you fit in and there is an even distribution (so most of your population is, say, male) that most likely means that the system is highly biased toward a male population and you should be aware of it\"}),\".\u201D The system can try to correct this bias, tell you why doing so is important, and explain why you should try to continually improve this model. Trustworthiness in the observer sense means that it gives you as many tools to confirm that you can trust the system by telling you its flaws and\u2014when it makes a good prediction\u2014the confidence that it has for that specific prediction.\"]}),/*#__PURE__*/e(\"p\",{children:\"The approach we take right now at MindsDB in terms of confidences is, even on the prediction end, we\u2019re not providing a single value. This is to help you understand that the systems aren\u2019t deterministic. They don\u2019t have the sole ability to predict the future. They can just give you an estimate and a distribution for that prediction and derive from those distributions what makes that distribution change (as to what is important for that particular prediction and whether the quality of that prediction is high or low). Trustworthiness comes with transparency and that is essentially what we want to aim for: systems that can give you predictions that are as transparent as possible and, if the predictions it gives you aren\u2019t ones you can trust, you should know immediately so that you can take control at once.      \"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});export const richText5=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"We\u2019re now in the digital frontier. In today\u2019s digital world, more people are shopping and banking online than ever before. For example, \",/*#__PURE__*/e(n,{href:\"https://www.statista.com/statistics/251666/number-of-digital-buyers-worldwide/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"statistics show\"})}),\" that by the year 2021, there will be an estimated 2.14 billion digital buyers worldwide, an online phenomenon driven by rapid technological advancements and economic globalization. As exciting as this significant increase in digital buyers may be for businesses hoping to reach these buyers, this growth in digital buyers has also caught the attention of cybercriminals worldwide. In 2018 alone, digital crimes accounted for an estimated $4.2 trillion in fraud losses, with $31 billion coming directly from the banking industry.\"]}),/*#__PURE__*/e(\"p\",{children:\"Consequently, fraud is becoming a bigger worry for businesses across many sectors. Luckily, advancements in artificial intelligence (AI) can assist in combating this growing risk. AI technology uses the power of computing to efficiently analyze significant amounts of data, establishing patterns that can trigger alerts in real-time all while avoiding human errors and biases. Machine learning\u2014a branch of AI\u2014is an essential strategy for both today and tomorrow's fraud-related business challenges.The ability to process data and make decisions without supervision can help meet the immense demand driven by millions of online transactions occurring every day. Let\u2019s now take a closer look at how AI is helping three industries fight back against fraud while improving the digital customer experience.\"}),/*#__PURE__*/e(\"h2\",{children:\"Artificial Intelligence for Fraud Detection in Banking\"}),/*#__PURE__*/t(\"p\",{children:[\"The banking industry today is more competitive than ever, where offering access and convenience to customers has resulted in the creation of new digital channels for managing personal assets. From online banking to mobile apps, digital channels are offering customers a better overall experience but unfortunately, this comes with a significant increase in digital fraud risk. A new wave of digital fraud poses a multi-billion dollar challenge for the global banking industry. To address this challenge, banks and financial institutions are beginning to employ modern data science technologies to fight back against digital fraud. \",/*#__PURE__*/e(\"strong\",{children:\"AI helps banks protect customer loyalty, discover adverse patterns in large data sets and decrease fraud losses for the organization.\"})]}),/*#__PURE__*/e(\"p\",{children:\"One of the best ways the banking industry is using AI to battle fraud is having the capability to monitor a vast amount of transactions to flag suspicious behaviors occurring in real-time across any banking channel. Currently, most banks have individual fraud detection systems for each banking channel creating silos which block cross-channel fraud communication. AI allows banks to centralize their fraud detection platforms to obtain an enterprise view of suspicious behaviors occurring across any channel at any time. This helps cut down on cybercriminals\u2019 attempts to hide fraudulent activity in one account while attacking another as a cat-and-mouse game to throw off fraud prevention teams. AI is helping banks discover these adverse patterns in real-time allowing for quick decisions and the ability to attack fraud at the source before it has a chance to spread to other accounts.\"}),/*#__PURE__*/e(\"h2\",{children:\"Artificial Intelligence for Fraud Detection in E-commerce\"}),/*#__PURE__*/t(\"p\",{children:[\"AI is nothing new to the online retail industry which uses this technology for the purpose of drawing in consumers to buy products and services. In retail, AI has historically been used more for customer experience and supply chain tactics. To show the value-add AI has for online retail, a \",/*#__PURE__*/e(n,{href:\"https://www.emarketer.com/content/will-ai-transform-retail\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"2018 survey\"})}),\" found artificial intelligence could save retailers $340 billion by 2022. This is largely due to it helping create more efficient supply chain systems and customer interfaces which increase consumer access to information about products and services. With AI being a core competency for any business engaging in online retail, this same value-add process optimization can be channeled towards decreasing digital fraud risk, leading to lower losses.\"]}),/*#__PURE__*/t(\"p\",{children:[\"One of the biggest fraud challenges for the e-commerce industry is false positives. False positives are when a legitimate transaction is flagged as suspicious which adversely impacts the customer experience and leaves consumer money on the table. One \",/*#__PURE__*/e(n,{href:\"https://www.javelinstrategy.com/press-release/false-positive-card-declines-push-consumers-abandon-issuers-and-merchants\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"report\"})}),\" estimated $118 billion is lost every year due to false positives occurring during online purchases. AI is meeting the challenge to decrease the number of false positives eroding consumer loyalty and company revenues by implementing new technologies to meet the rising fraud threat. Machine learning conducts deep analysis into this data to better predict transactions which truly exists outside of normal spending habits. The result is fewer false positives, a win for both consumer and online retailers. Moving forward it will be interesting to see how a reduction in false positives helps lower fraud expenses for online retailers and their banks.\"]}),/*#__PURE__*/e(\"h2\",{children:\"Artificial Intelligence for Fraud Detection in Gaming\"}),/*#__PURE__*/t(\"p\",{children:[\"Gaming has come a long way since the days when Atari introduced the world to the start of the multi-billion dollar industry that would soon follow. Gaming, like most other technologies, has advanced significantly over the years, with online gaming becoming a major industry of its own. An industry \",/*#__PURE__*/e(n,{href:\"https://www.statista.com/topics/1551/online-gaming/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"bringing in around $33.6 billion\"})}),\" this year from PC online games alone, not counting online gaming purchases on other gaming consoles like Xbox, PlayStation, and mobile devices. With 2.2 billion active gamers worldwide and 47% engaging in online purchases, this leaves over a billion individuals exposed to online fraud. The top ways cybercriminals exploit online gaming platforms is through account takeovers, synthetic IDs, bots, and spoof sites. These methods aim to exploit this lucrative market which is not heavily regulated and currently has a lack of cybersecurity standards in place for protecting customer data.\"]}),/*#__PURE__*/e(\"p\",{children:\"In the gaming industry, artificial intelligence is being used to protect profits not just to help create them. AI is being unleashed to tackle issues with in-game purchases which must occur instantaneously to not interrupt the gamer's experience. Data science methodologies like machine learning can process massive amounts of user data to help ward off transactions that are outside the norms of the user's normal patterns of activity. This technology helps capture suspicious activity in real-time while also not disrupting the gaming experience for users. Combining transaction and gaming data takes significant brain power to analyze which AI can handle, making it the perfect weapon for online gaming platforms to ward off cybercriminals looking to exploit their booming market.\"}),/*#__PURE__*/e(\"h2\",{children:\"In Conclusion\"}),/*#__PURE__*/e(\"p\",{children:\"No matter the industry, any company engaging in online data transfers is exposed to adverse fraudulent activity. These days, it is not a matter of if, but when a company will be targeted by cybercriminals to carry out an illicit online activity which hurts both the consumer and merchant. With great advancements in artificial intelligence technologies, businesses across all industries from e-commerce to online gaming are fighting back to keep their customers and revenues safe from external threats.\"}),/*#__PURE__*/e(\"p\",{children:\"AI methodologies like machine learning have the deep-thinking capabilities to process massive amounts of data in real-time which gives any business a fighting chance to stop fraud in its tracks and keep transactions safe.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});export const richText6=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Artificial intelligence has gotten a lot of credit for transforming the way the car and airline industries, operate. However, it gets less credit for the things it can do for retail and e-commerce businesses. If you're in either of these spaces and aren't currently incorporating AI, or its counterpart, machine learning (ML) into your company's strategies, you risk being left behind because AI is the way forward for retail.\"}),/*#__PURE__*/e(\"p\",{children:\"This post uncovers the ways that retail and e-commerce providers can use AI, and machine learning specifically, to transform their businesses. \u200D\"}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"What Do We Mean When We Talk About Machine Learning?\"})}),/*#__PURE__*/e(\"p\",{children:\"When we talk about machine learning, we're specifically addressing the ways that computers are able to learn from data and make predictions based on those learnings. When it comes to using machine learning for business, the goal around this is to use data to obtain actionable insights. At the end of the day, this is primarily what ML is used for. You collect data, observe it, and then run models to try to get insights--it\u2019s a mixture of programming, statistics, and science.\"}),/*#__PURE__*/e(\"p\",{children:\"Before you can make a prediction, you have to train and run a model. The steps can be boiled down to the following:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Gather Data & Clean it Up\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Choose and Train Your Model\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Evaluate and Refine Parameters\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Obtain a Prediction\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"The prediction stage is the ultimate goal, but getting there can be complex if one tries to do it on their own without the help of machine learning automation technologies. With the right machine learning automation tool, however, it's quite easy to go from having data to getting predictions from it.\",/*#__PURE__*/e(\"br\",{}),\"\u200D\"]}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"Uses for Retail & E-commerce\"})}),/*#__PURE__*/e(\"p\",{children:\"So, how exactly are companies using machine learning, particularly in retail & e-commerce?\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Product Categorization\"})}),/*#__PURE__*/e(\"p\",{children:\"Companies can use machine learning to tag millions of products and display them to the right users at the right time. Some companies such as classified app provider, lafofo, go one step further than basic product categorization by enabling sellers to upload pictures of the goods they want to market. Once the seller uploads those goods, the site--through the use of machine learning--recognizes the items in the pictures, places them in the right category, and prices them automatically. Outside of the initial product upload, all of these processes occur through automation.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Virtual Fitting Rooms\"})}),/*#__PURE__*/t(\"p\",{children:[\"A Chinese retailer, named Pulsion, \",/*#__PURE__*/e(n,{href:\"https://www.forbes.com/sites/janeho/2018/08/01/chinese-virtual-fitting-room-startup-boosts-retailers-revenues-with-big-data/#13c0e744423f\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"created a virtual fitting room\"})}),\" where customers create virtual avatars with their physical characteristics and then are able to \u2018try\u2019 different clothes on in a short amount of time. Using a database with body type information on millions of people, Pulsion was able to create a 3D model with about 20 parameters. Other ventures like this in Europe and North America also use scanners to identify hundreds of thousands of data points in the customer's body which they use to provide an accurate virtual model of a person\u2019s body type. They use this model to give their users the ability to choose a body type most similar to theirs so that they can try on merchandise without having to be in a physical store.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Dynamic Pricing\"})}),/*#__PURE__*/e(\"p\",{children:\"Personalized pricing occurs when a company determines a price based on variables related to not just what they perceive a product is worth, but also what they believe a particular customer will pay based on their customer profile or past behavior. Retail giant Amazon is one of the most recognized companies when it comes to dynamic pricing. Place an item in your cart, leave it alone, come back to it later, and notice that the price has either gone up or down? This happens because Amazon has determined by your online behavior that you're more likely to buy that item at the specific price they show you. Another customer, based on their behavior on specific sites, is likely to receive an entirely different price.\"}),/*#__PURE__*/e(\"p\",{children:\"Other equally interesting machine learning applications in the retail space include:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Anomaly Detection:\"}),\" Retailers and e-commerce providers can search for anomalies in order to detect, for example, fraud or incomplete information about products.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Trend Analysis:\"}),\" Retailers and e-commerce providers can analyze trends, product demand, customer sentiment  (i.e., tracking customers\u2019 reviews and overall satisfaction with products) and any variables that can be tracked over a period of time.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Customer Support:\"}),\" Retailers and e-commerce providers can use chatbots to simplify the answering of questions on their websites and provide assistance to customers through speech recognition without ever having to connect the customer to a human working for the retailer.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Customer Segmentation:\"}),\" This occurs when companies segment a group of customers under different criteria in order to identify and personalize products and services based on the particular features of each group.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Logistics & Inventory:\"}),\" Retailers can use machine learning to identify failures humans may miss with computer vision, natural language processing for inventory management, routes optimization and other uses related to the supply chain.\"]})})]}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"Where Do We Go From Here?\"})}),/*#__PURE__*/e(\"p\",{children:\"As you can see, there are varied use cases for machine learning in retail and e-commerce. The possibilities are vast and the field is in the initial stage of exploration and is still trying to figure out how to apply the best techniques out there to produce the best results. Of course, everything isn't all roses. I'd like to include a word of caution here.\"}),/*#__PURE__*/e(\"p\",{children:\"First, machine learning works with models and no model is 100% accurate. There is no magic. As Jeff Leek put it, the keyword in Data Science is not data: it is science! Inevitably, this means that you make progress in data science through trials, tinkering, and a lot of experimentation.\"}),/*#__PURE__*/e(\"p\",{children:\"Secondly, we can\u2019t ignore the potential negative impact of some of those use cases. Dynamic pricing provides a good example of the potential downsides to making predictions that affect the buyer experience. Say a customer purchases an item from a retailer's website and then notices that the price of that product was cheaper when they visited that retailer's site through another browser. This customer is likely to question whether they obtained a fair price for the item they purchased. This can ultimately lead the customer to feel frustration toward the retailer.\"}),/*#__PURE__*/e(\"p\",{children:\"Regardless of these risks, AI and machine learning seem to be here to stay. We can be sure that more and more businesses will make use of AI and machine learning and profit from it. The future will definitely bring more examples and some companies, like MindsDB, are making an effort to speed up this process. Democratizing machine learning is our mission and we enable this by making it possible for anyone to build and use machine learning models and obtain the insights they need to propel their businesses forward. MindsDB supports all of the retail and e-commerce applications illustrated in this post. To learn more, read about our industry-specific use cases.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});export const richText7=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"As the co-founder of a machine learning startup, many people have asked me to explain the difference between Machine Learning, Artificial intelligence and Deep Learning. Usually, I provide a reasonably concise explanation of the three areas. I then point them to \",/*#__PURE__*/e(n,{href:\"https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"this\"})}),\" great article by \",/*#__PURE__*/e(n,{href:\"https://blogs.nvidia.com/blog/author/michaelcopeland/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Michael Copeland\"})}),\" on the Nvidia Blog. However, that article is probably a bit more in-depth than people are expecting; most people want at maximum a 1\u20132-minute answer. So, I thought it was about time I have a go at writing a sub-2-minute article on the topic. Here goes\u2026.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Artificial intelligence\"}),\" is an area in computer science to describe when computer systems perform tasks that would usually require human intelligence. Great examples of this are object detection (apples vs oranges), classification of images (fruit vs vegetables) or speech recognition. These are all tasks that come second nature to humans, but something computers have historically found to be very tough.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Machine Learning\"}),\" is the building of Artificial Intelligence algorithms that learns from a series of inputs and outputs generating a final algorithm that can predict the answer when provided the data input (e.g., predict whether an image is of an apple or an orange.)\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Aren\u2019t they the same thing? Well, no\u200A\u2014\u200AArtificial Intelligence is the broad concept of machines being able to do human tasks, and Machine Learning is one application of that broad concept into applications such as recognizing objects.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"So, what is Deep Learning?\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Deep Learning\"}),\" is a subset of Machine Learning which tries to replicate the way a human brain works, automating much of the learning process. As humans, we ingest vast amounts of data without even knowing it. Ever wondered how we can tell an apple from an orange even though no two apples look exactly alike? Well, we have seen tens of thousands of apples and oranges in our lifetimes\u200A\u2014\u200Asome have been labelled for us (like in a supermarket), others have not. However, we can identify them because of their color, shape, and how others peel and eat them.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/t(\"p\",{children:[\"Deep Learning is similar, using a very large dataset (that may be labelled like the apples in the supermarket\u200A\u2014\u200A\",/*#__PURE__*/e(\"strong\",{children:\"supervised learning\"}),\") or not (like all the other apples you have seen and had to determine for yourself what they are\u200A\u2014\u200A\",/*#__PURE__*/e(\"strong\",{children:\"unsupervised\"}),\").\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Hopefully, this short article helps to demystify these much-discussed phases, which are often interchangeably used.\"})]});export const richText8=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"At first, there were no machines. Humans relied solely on manual labor to survive. Then they invented tools, and from those tools evolved more complex tools. Eventually, as a result of innovation spanning thousands of years, these tools became machines.\"}),/*#__PURE__*/e(\"p\",{children:\"Machines were invented with the purpose of augmenting our human and feeble capacities because, by design, they overpower our physical abilities. Mechanical machines give us leverage in terms of raw power and computing machines provide us with the means to generate, organize and process vast amounts of data at speeds that we simply can\u2019t by ourselves.\"}),/*#__PURE__*/e(\"p\",{children:\"We are now in the infancy of another human innovation brewed in the computing machine so that the machine can learn (Machine Learning or ML), reason and solve problems (Artificial Intelligence or AI) better than we can. If we get this right; These machines will be at the forefront of the next wave of human advancement. But what are the dangers and how can we avoid them?\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"h2\",{children:\"Dangerous AI\"}),/*#__PURE__*/e(\"p\",{children:\"The obvious dangers of AI are those that can harm humanity or life in one way or another. The idea of AI/ML has been around for less than 100 years, which is a rather small interval compared to 200,000 years since the homo sapiens came to be. As such, it is easy to wonder about the possible exponential evolution of AI and ask ourselves questions like; When are we going to build machines that surpass the human cognitive capabilities (The Singularity) and what will happen then?\"}),/*#__PURE__*/e(\"p\",{children:\"I invite you, for now, to leave The Singularity questions to science fiction. And focus on one certain thing, which is that ML/AI as it stands today, already presents meaningful dangers and it is our responsibility to mitigate such liabilities ASAP. Moreover, it should be our strategy to continuously tackle the risks as AI continues to evolve If, on the one hand, we want to maximize the chances of a positive outcome that day in the future when \u201CThe Singularity\u201D happens if it ever happens. And on the other hand, if we want to maximize our chances to make it to that future anyway.\"}),/*#__PURE__*/e(\"p\",{children:\"To the light of the previously described dangers, let\u2019s focus then on what we believe is one of the most pressing issues with ML/AI today, which finds its origins in the observed tendency to over-trust AI/ML-based systems as they stand now, all within the blurred ideal of making informed decisions and as such, it derives into what we should aim to be the next trend; which is to thoughtfully design AI-based systems that are meant to augment our human cognitive capabilities rather than to replace them.\"}),/*#__PURE__*/e(\"p\",{children:\"Let\u2019s begin with, what do I mean when I say over-trust AI/ML? Today, if you were faced with the decision of picking a teammate for a game of chess and your options were between the best human player or the best computer program at this task, you wouldn\u2019t be crazy by picking the computer program. During this game, if you happen to win by blindly trusting the decisions that this program makes, wouldn\u2019t you think that trusting such a program is the most informed decision? Are we making the best decision when relying blindly on a system that can take in all the data that a human can\u2019t?\"}),/*#__PURE__*/t(\"p\",{children:[\"To answer those questions, we should also ask ourselves, what are the implications of blindly trusting a particular AI System? And acknowledge that the answer to that question varies depending on the situation. To further develop that thought, let\u2019s examine the hypothesis that; \",/*#__PURE__*/e(\"em\",{children:\"there are cases in which increasing reliance on machines for decision making has already proved to be a threat to us humans.\"})]}),/*#__PURE__*/e(\"p\",{children:\"One recent and sad example of this is found in aviation (the Boeing 737 MAX issues), where one could reason that aircraft are increasingly being controlled by the autopilot systems and pilots are relegated to only perform routine procedures during takeoff and landing. This has had some serious implications on the pilot\u2019s ability to maneuver the aircraft in unexpected situations. One could also argue that the increasing reliance on machine-made decisions is causing pilots to forgo their cognitive skills and their ability to meander difficult situations because they are blindly trusting the autopilot systems. But is the answer to this issue, that we ditch the autopilot systems?\"}),/*#__PURE__*/t(\"p\",{children:[\"Perhaps one ideal scenario is that in which if experts (in this case the pilots) observe something that goes against their intuitions, that they can do what is natural to us humans, which is to question. \",/*#__PURE__*/e(\"em\",{children:\"Autopilot: what are you doing and why?\"}),\" if the answer is not convincing they (the pilots) should be able to take control of the situation at once, and as humans with the privilege of enormous cognitive capabilities: bare the responsibility of actions.\"]}),/*#__PURE__*/t(\"p\",{children:[\"If you are amongst the ones to agree that the previous would be an \",/*#__PURE__*/e(\"em\",{children:\"ideal solution,\"}),\" you are not alone, as it illustrates the need for what some call \u201CExplainable AI\u201D or XAI. For we should be able to ask and obtain explanations that make sense from any AI-based system as to the choices it is making. Being inquisitive is one of the very human traits that make us unique and we should, by all means, preserve such human attribute.\"]}),/*#__PURE__*/e(\"h2\",{children:\"Explainable AI (XAI)\"}),/*#__PURE__*/t(\"p\",{children:[\"To give you a little bit of background without getting too much into the details; People at \",/*#__PURE__*/e(n,{href:\"https://www.darpa.mil/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"DARPA\"})}),\" (the Defense Advanced Research Project Agency) coined the term Explainable AI (XAI) as a research initiative at to unravel one of the critical shortcomings of AI. The more sophisticated ML/AI models become the less interpretable they tend to be. Moreover, AI in its current form is designed to learn on specific domains and to learn from concrete examples of data, narrowed only to the specific problem they are trained to solve, for it still takes the human capacity of abstract thinking to understand the full context of the problem.\"]}),/*#__PURE__*/e(\"p\",{children:\"Given the narrow scope of understanding that these AI/ML-based systems have, it is natural to argue that if these algorithms are used for making critical decisions concerning someone\u2019s life or society in general, then (it is obvious to me and I hope it is to you too) that we should not get rid of them, but we should not delegate these systems with the full responsibility of making such critical decisions.\"}),/*#__PURE__*/t(\"p\",{children:[\"To further elaborate on this, I\u2019d suggest you read \",/*#__PURE__*/e(n,{href:\"https://medium.com/@mijordan3\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Michael Jordan\"})}),\" (not the basketball player but a well-known engineer from Berkeley) who has put a length of his thoughts in his article called \u201CArtificial Intelligence\u200A\u2014\u200AThe Revolution Hasn\u2019t Happened Yet\u201D. He and I agree on something; We should ask ourselves what are the important developments that ML/AI needs today, to safely augment the human capacity to solve very complicated problems. In my opinion, XAI is certainly one of those important developments.\"]}),/*#__PURE__*/e(\"h2\",{children:\"XAI Important Questions\"}),/*#__PURE__*/e(\"p\",{children:\"Think about this other example in which systems give recommendations: If a doctor uses an AI system to help her diagnose a medical condition, a predicted diagnosis is not enough, the logical flow is that the doctor should also be able to ask the system to also explain the predicted diagnosis, in an ideal scenario, the answer should also come in terms as interpretable as possible to the doctor, rather than explaining it in the complicated jargon used in the machine learning model and its tunable parameters.\"}),/*#__PURE__*/e(\"p\",{children:\"This opens the invitation to all of us in Machine Learning disciplines to ask ourselves how do we build systems that can predict and also explain? Furthermore, acknowledge the importance of that endeavor. As domain experts in all disciplines empowered from explanations from AI/ML should be able to further the knowledge in their fields by leveraging the increasing amounts of data and computational power available to them.\"}),/*#__PURE__*/e(\"p\",{children:\"Some of you might still be wondering, ultimately speaking, are domain experts really needed? For this I suggest you read \u201CThe bitter lesson\u201D essay by Rich Sutton (one of the big thinkers at Google\u2019s Deepmind), in it, he argues that domain expertise cannot compete with the pattern recognition capabilities of Machine Learning models. We don\u2019t have to agree or disagree. However, it is my opinion that we take the word \u201Ccompete\u201D out of the equation and instead simply think of augmentation of our human cognitive capabilities.\"}),/*#__PURE__*/t(\"p\",{children:[\"Therefore, a second invitation is for these new tools to be designed such that everyone can understand that problems can be viewed from a data perspective, these tools should also be simple enough that anyone can be a \",/*#__PURE__*/e(\"em\",{children:\"\u201CData-Scientist\u201D\"}),\" in their own domains and be empowered by the wonderful pattern recognition capabilities of Machine Learning to get new insights and discoveries, hidden in the data that at first sight may not be obvious to us humans. If such systems cannot only uncover patterns but also explain them to us, we will not only become aware of such exploratory capabilities of \",/*#__PURE__*/e(\"em\",{children:\"search and learn\"}),\" that machines posses but we can also shape the next form of human \",/*#__PURE__*/e(\"em\",{children:\"Intelligence Augmentation\"}),\" (IA).\"]}),/*#__PURE__*/e(\"p\",{children:\"That\u2019s why there is a need to build a separate class of HCI (Human Computer Interface) which today, in my opinion, boils down to solving two problems:\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"First:\"}),\" When using an AI system, what should be those basic questions that, regardless of the problem, we must be able to get answers to?\"]}),/*#__PURE__*/e(\"p\",{children:\"At MindsDB, we narrow the scope of this problem to predictions, as we believe that predictions ultimately lead to inform most decision making processes. As such, we better be able to answer three basic questions from any AI assisted decision:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Can I trust this prediction and why?\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Why this prediction and not something else?\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"How can I make the predictions more reliable/better?\"})})]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Second:\"}),\" How do we actually explain the answers to those questions to other humans?\"]}),/*#__PURE__*/e(\"p\",{children:\"DARPA has one separate team dedicated to studying the psychology of explanation. This team is totally focussed on unearthing the literary knowledge base on the science of explanation from a psychological point of view to build frameworks that help measure the effectiveness of an explanation. This is a step towards UX in XAI.\"}),/*#__PURE__*/e(\"p\",{children:\"Apart from DARPA, there are many research initiatives in large corporations as well as universities that are working towards building tools for XAI. At MindsDB, we see that the track to developing systems capable of answering the fundamental questions of XAI follows two stages (Soft XAI and then Introspective AI):\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Soft XAI\"})}),/*#__PURE__*/e(\"p\",{children:\"Imagine you are trying to understand why an animal behaves the way it does. But you can\u2019t communicate with such animal? Similarly, you are trying to understand the rationale behind the decisions of an AI system but the system cannot currently answer on its own why it does the things it does. What would be some approaches to solve these problems?\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"The deep approach\"}),\", which is trying to understand everything that happens inside the system. We can try to understand in detail the system\u2019s different building blocks and how they learn and how those tasks affect the net outcomes. If we are talking about artificial neural networks, for instance, this means looking at each perceptron\u2019s parameters, learning what makes them \u2018activate\u2019 and how these activations propagate into concepts that we can understand. Interpreting these results however requires a high degree of specialization, and it\u2019s been found to be hard to generalize.\"]}),/*#__PURE__*/e(\"p\",{children:\"A parallel to this is that of trying to derive explanations from our behavior by analyzing the neural pathways and the internals of the brain under certain stimuli, this can lead to important discoveries about how the brain works and both neuroscience and machine learning fields continue to learn from each other\u2019s findings. However, we have experienced that an alternative to interpretable results can be obtained from a simpler approach.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"The black box approach\"}),\", which is to get answers by treating the system as exactly that, a black box that of which we don\u2019t know its internals, and thus understanding its behavior only by manipulating its input and figuring out what\u2019s interesting in the outputs. This provides a good framework to get a lot of insights and has worked well in other fields, all the way from physics to psychology.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Given the practicality of this approach, \",/*#__PURE__*/e(n,{href:\"https://www.mindsdb.com/?utm_source=MindsDB&utm_medium=XAI\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"MindsDB\"})}),\" has adopted it as its means of explainability, and in that road, we have been privileged to step on the shoulders of giants, for we have studied and borrowed ideas from others (Google\u2019s \",/*#__PURE__*/e(n,{href:\"https://pair-code.github.io/what-if-tool/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"What If\"})}),\", IBM\u2019s \",/*#__PURE__*/e(n,{href:\"https://venturebeat.com/2018/11/01/ibm-harvard-develop-tool-to-tackle-black-box-problem-in-ai-translation/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Seq2Seq-Vis\"})}),\", \",/*#__PURE__*/e(n,{href:\"http://vis.cse.ust.hk/groups/xai-vis/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"VisLab\"})}),\" at the HongKong University of Science and Technology, \",/*#__PURE__*/e(n,{href:\"https://github.com/slundberg/shap\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"SHAP\"})}),\", \",/*#__PURE__*/e(n,{href:\"https://github.com/marcotcr/lime\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"LIME\"})}),\") to name a few.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Introspective AI\"})}),/*#__PURE__*/t(\"p\",{children:[\"Once we have achieved Soft XAI, we can actually teach the machines how to do it, and this will involve re-engineering AI/ML so that it can derive explanations of itself and why it behaves the way it does, in a way similar to how we learn to explain our actions and thoughts. We believe the next generation of \",/*#__PURE__*/e(n,{href:\"https://www.mindsdb.com/blog/user-question-xai-trustwothiness\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"AI systems will be taught to analyze its own behaviors\"})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"In my opinion, Introspective AI will derive from a black box approach and our understanding of language. The reasoning behind it comes from the observation that us humans; we poorly understand our brains, but just the same can come up with explanations to why we think one way or another. We have evolved to be able to explain our actions and our interpretations of the world around us. One could argue that it is explainability itself the fundamental piece to transfer knowledge, has shaped our brains throughout evolution, setting humans apart as the only kind capable of continuously building knowledge on top of knowledge.\"}),/*#__PURE__*/e(\"h2\",{children:\"Looking Forward\"}),/*#__PURE__*/e(\"p\",{children:\"With all the excitement around AI and its capabilities, any XAI technology has an important role to keep AI safe and sane for future generations. We at MindsDB hope to see and contribute to some real outcome in the next couple of years. By then, XAI will most likely become a statutory requirement in building any AI-powered application for the real world.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});export const richText9=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Getting to the point where an organization can deploy machine learning models is pretty exciting because it makes it possible for these businesses to develop a competitive edge using their data. Still, there are some factors, such as the feedback cycle, deployment orchestration, and iterative development, which must be considered when putting these models to work.\"}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"What Does the Ideal Model Deployment and Iteration Cycle Look Like?\"})}),/*#__PURE__*/e(\"p\",{children:\"To begin, let\u2019s assume you\u2019re running an e-commerce enterprise, and you\u2019ve been tracking the conversion data of your business to develop a recommendation algorithm. Chances are that you may want to know which products to send to users via social media or email that'll trigger a purchase. This way, you will be using the customer information to define the problem, and once you have determined the issue, you will need to gather the right team to help solve it. In your team, you'll definitely need people who can collect and format the data, as well as individuals who can select and train models. Once you have done this, you'll finally get to the deployment of a machine learning model.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"To determine conversions, you can run analyses in batches. In some instances, you may want to train your system using new and old user data, along with the reality on the ground, as to whether or not the users converted. Doing all these things means running your model on real data, and analyzing results to determine if your recommendations increase user conversion and engagement. You can re-evaluate and refine your problem based on the data generated from the results. Alternatively, you could enter the data into a learning loop.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/e(\"h3\",{children:\"Model Deployment Process\"}),/*#__PURE__*/e(\"p\",{children:\"Model deployment is a process which involves two equally important parts; production deployment, plus analysis and monitoring.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/e(\"h4\",{children:\"Production Deployment\"}),/*#__PURE__*/e(\"p\",{children:\"As a rule of thumb, a machine learning model must be simple, accurate, and scalable, to work.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/e(\"h4\",{children:\"Analysis and Monitoring\"}),/*#__PURE__*/e(\"p\",{children:\"To determine what works best, tack the AI models performance onto a continuous stream.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"These two processes of deploying machine learning models must occur in unison while, at the same time, keeping your team on the same page. However, assembling the right team to work in tandem and sync could prove to be one of the most significant barriers to the deployment of machine learning models in production.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/e(\"h2\",{children:\"What Does Today\u2019s Enterprise Machine Learning Deployment Look Like?\"}),/*#__PURE__*/e(\"p\",{children:\"Many data-driven enterprises today are building (or have developed) extensive workflow tools and pipelines to handle the machine learning deployment cycle. However, there is undoubtedly often a noticeable disconnect between the teams, which makes it difficult to maintain the workflow. As a result, many contemporary entrepreneurs have to deal with many challenges when deploying machine training models.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Deploying machine learning models in production is slow, and things have to be scaled up manually. When multiple teams are tracking machine learning models separately, there is a lack of one true source, and this makes performance monitoring difficult. Performance is individually evaluated, and other stakeholders are not able to see results on the go. Hyperparameter checking is also done manually, and it is poorly documented.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Luckily, there are better ways to counter the problems mentioned above, which help the teams work in unison towards the realization of a common goal. This leads us to the next section.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/e(\"h2\",{children:\"Best Practices for Machine Learning Model Deployment: How MindsDB Can Help\"}),/*#__PURE__*/e(\"p\",{children:\"A well-deployed model should be sustainable and accurate for a long period of time, and you can ensure this by following certain simple steps, including the following:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Be sure that model definitions are separate from configuration parameters. This enables you to process your data quickly without tampering with your machine learning model. MindsDB tracks these configuration parameters.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Version your model iterations. MindsDB automatically tracks your model iterations, such as features, snapshots, and data.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Run multiple training tasks at a go for faster creation of performance models. In scenarios such as forecasting, MindsDB automatically handles multiple different predictive tasks..\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Package your machine training model into a container (a table inside your favorite database) simplifying training, deployment and analysis of all statistics from a single location to enable all stakeholders to view the results. MindsDB tracks all deployments in real-time. This makes it possible to diagnose any issues and fix them as quickly as possible.\"})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Although the process of deploying machine learning models in our everyday activities is seemingly complex, the truth is, that it is an iterative loop. Sure, it calls for full collaboration and coordination, but it can be scaled down to only essentials. MindsDB is working hard to make the process simpler.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});export const richText10=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Big data, deep learning, artificial intelligence, machine learning. I can bet these buzzwords show up at least once a week in your feed and have been for the past few years. Our radar can\u2019t escape them even if we wanted to. By now everyone has some idea of what those words mean, but can you really explain their meaning if someone asked you? Or better yet, do you know enough that you could apply those concepts to your work? In this article, I\u2019ll go through a brief review of machine learning and then explain some of its newest use cases for business.\"}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"What exactly is Machine Learning?\"})}),/*#__PURE__*/t(\"p\",{children:[\"In short, machine learning (ML) is the study of statistical methods and algorithms used by computers in order to perform a task without \",/*#__PURE__*/e(\"em\",{children:\"explicitly\"}),\" being told. The \u2018learning\u2019 part means that the computer tries to find patterns in the data it\u2019s provided with. The way it learns is through algorithms we devise.\"]}),/*#__PURE__*/e(\"p\",{children:\"Machine learning is closely related to artificial intelligence. In fact, it can be seen as a discipline within it. The history of machine learning can help us understand it better so let us go through a quick overview.\"}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"A Brief History\"})}),/*#__PURE__*/e(\"p\",{children:\"As is often the case with new technologies, it is hard to pinpoint exactly when in time the birth of ML took place. Often, people who go as far as assigning a date to its inception are really just telling you the date some underlying concept was introduced.\"}),/*#__PURE__*/e(\"p\",{children:\"Here we adopt a more practical view:\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"1950 to 1980:\"}),\" We have the early stages of machine learning. From the creation of the Turing Test (a test to tell whether a machine\u2019s ability to exhibit intelligent behaviour is equivalent to, or indistinguishable from, that of a human.) to the creation of the first neural network framework for computers and basic applications such as improving computers\u2019 performance in the game of checkers and rough pattern recognition.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"1980 to 2000:\"}),\" We see examples of a computer creating a general rule from an input (training data), the pronunciation of words in an early stage and the specialization of programs represented by the iconic chess match between DeepBlue and Garry Kasparov ending in a defeat for the then world champion.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"2000 to 2010:\"}),\" Geoffrey Hinton coins the term \u201Cdeep belief networks,\u201D the prototype term for deep learning algorithms, which take the input and make successive transformations on them until we have the output. ImageNet, an extensive visual database, is created for visual object recognition.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"2010 to 2019:\"}),\" We hear more and more about big data, data science deep learning, and artificial neural networks. In 2010, deep learning emerges as the next step in machine learning methods. In 2016, Google\u2019s AlphaGo (a deep learning based software) beats the world\u2019s best players of GO, a game considered many times harder than chess.\"]})})}),/*#__PURE__*/e(\"p\",{children:\"We have seen rapid development, especially in the last few years. Google, Facebook, and Amazon make investments in AI and ML, in particular with the creation of Google\u2019s X Lab, DeepFace algorithm and Amazon\u2019s own Machine Learning platform.\"}),/*#__PURE__*/e(\"p\",{children:\"In 2018, Google introduces AutoML, which enables people with less expertise to benefit from machine learning methods. Google\u2019s AutoML trains your data-sets with custom models. AutoML currently focuses on models for Natural Language Processing, Visual Object Recognition, and Translation.\"}),/*#__PURE__*/t(\"p\",{children:[\"Similarly, \",/*#__PURE__*/e(n,{href:\"http://mindsdb.com/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"MindsDB\"})}),\", in our mission to democratize machine learning, provides an AI service that does the work that a machine learning expert would normally do, training the data with different models & delivering results to users based on their queries.\"]}),/*#__PURE__*/e(\"h2\",{children:\"General applications of Machine Learning\"}),/*#__PURE__*/t(\"p\",{children:[\"As \",/*#__PURE__*/e(\"strong\",{children:\"Ethem Alpaydin\"}),\" put in his book \",/*#__PURE__*/e(n,{href:\"https://www.amazon.com/Introduction-Machine-Learning-Adaptive-Computation/dp/0262028182/ref=sr_1_1?keywords=introduction+to+machine+learning&qid=1552255948&s=gateway&sr=8-1\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:/*#__PURE__*/e(\"em\",{children:\"Introduction to Machine Learning\"})})}),\":\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"\u201C\u2026 we all became producers of data. Every time we buy a product, every time we rent a movie, visit a web page, write a blog, or post on social media, even when we just walk or drive around, we are generating data.\u201D\"})}),/*#__PURE__*/e(\"p\",{children:\"And machine learning is all about learning from data. The algorithms machine learning experts use usually fall under the following categories:\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Associations\"}),\". The software finds associations between two actions and can assign a probability based on how often those actions occur. Example: the software may find out that a customer that buys a book by some author X also typically buys a book by some author Y. So the people who buy X and NOT Y are potential customers for Y and we may find an association rule such as 70% of people who buy X also buy Y.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Classification\"}),\". In this category, machine learning systems fit a model to some already available data in order to make predictions. Example: to classify customers as low-risk or high-risk clients, we may gather all the information we have on them and set a particular rule to tell whether or not a customer falls into one of the classes. Then new customers will be labelled as low-risk or high-risk, based on this past data.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Supervised & Unsupervised Learning\"}),\". In supervised learning, the aim is to provide a rule that takes the input data and provides the correct output. The supervisor is the person who tells whether the output is correct or not. In unsupervised learning, the aim is to try to detect patterns and regularities in the input data only, without a supervisor to tell you whether there are correct values. For example, a company may want to group customers who are similar, based on the data they keep on them such as demographic, financial and/or past purchases, etc. Then we have a natural customer segmentation and we can learn about the similarities of groups of customers without looking for something in particular. If we want something particular then we apply the supervised learning and set our criterion for what returned value is correct.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Reinforcement Learning.\"}),\" The focus here is on the sequence of actions required to achieve a goal. We define a reward and possible actions. Then the program learns the correct sequence of actions to achieve the goal or reward. After more trial runs it can learn to do it as quickly as possible.\"]})})}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"Uses of ML: How is Machine Learning Being Used in Industry?\"})}),/*#__PURE__*/t(\"p\",{children:[\"In 2018, Forbes Magazine published a \",/*#__PURE__*/e(n,{href:\"https://www.forbes.com/sites/davidteich/2018/12/26/machine-learning-and-artificial-intelligence-in-business-year-in-review-2018/#243e95882041\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"review of machine learning\"})}),\" and \",/*#__PURE__*/e(n,{href:\"https://www.forbes.com/sites/ciocentral/2018/09/17/the-state-of-machine-learning-in-business-today/#13bf83a43b1d\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"the state of machine learning in business\"})}),\". In the review, David A. Teich writes:\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"\u201CThe technologies and techniques of AI and ML are still so new that the main adopters of the techniques are the large software companies able to hire and to invest in the necessary expertise\u201D\"})}),/*#__PURE__*/e(\"p\",{children:\"Despite machine learning applications being in their early stages, in recent years machine learning adoption has begun to rapidly accelerate as more organizations see the benefits that this technology can bring to their business.\"}),/*#__PURE__*/t(\"p\",{children:[\"For instance, \",/*#__PURE__*/e(n,{href:\"https://www.oreilly.com/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"O\u2019Reilly\"})}),\" recently surveyed more than eleven thousand people who worked with AI, Data Science, and related fields. It reports that about half of the respondents said they are \u2018just looking\u2019 into the technology and more than one-third have been working with machine learning models for at least the past 2 years. That means about two-thirds of the respondents are already in touch with the technology at some level.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Machine learning is being used in a variety of sectors and \",/*#__PURE__*/e(n,{href:\"https://www.mindsdb.com/solutions/use-cases\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"use cases are showing up in a wide range of areas\"})}),\". The specific use cases are diverse; they range from adjusting paywall pricing for different readers based on the probability of readers subscribing to reducing scrap rates in semiconductor manufacturing. Here are some of the major ways machine learning is helping organizations:\"]}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Supply Chain Management & Inventory Management:\"}),\" IBM\u2019s \u201CWatson\u201D system was able to detect damaged shipping containers based on visual pattern recognition. Still, in Supply Management, machine learning has also been used to forecast the demand for new products, and in helping identifying factors that might affect this demand. Machine learning is also helping to reduce the costs of inventory management while simultaneously adjusting inventory levels and increasing inventory turnovers.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Fraud Detection:\"}),\" One can use a combination of supervised learning to learn about past frauds and learn from them\u200A\u2014\u200Aand unsupervised learning in order to find different patterns in the data that might have slipped or anomalies people might have missed. For example, MasterCard uses machine learning to track purchase data, transaction size, location, and other variables to assess whether a transaction is a fraud.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"IoT:\"}),\" Devices and processes themselves generate data. Industrial companies produce large amounts of data in their daily operations. Machine learning can then be used to infer some useful information. For example, by analyzing different processes in a factory, we can use this data to prevent accidents or deal with production difficulties through ML methods.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Predictive Maintenance:\"}),\" For this one, the rail industry takes the lead. Almost half of the companies in this sector use some sort of predictive analysis supported by machine learning. Infrabel, a Belgian company in this sector, has a single tool to predictive maintenance which combines IoT, monitoring tools and machine learning models to provide alerts when something is not quite right.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Personalization & Customer Churn Prevention:\"}),\" Personalization shows a customer different offers, providing a personalized experience and therefore increasing chances that the customer will convert. An example of this, Adobe uses machine learning algorithms to provide a personalized user experience with their optimization engine Adobe Target, but no unique experience will surpass a \",/*#__PURE__*/e(\"em\",{children:\"good\"}),\" experience, and one of the most popular metrics used to measure whether clients are satisfied is churn rates. However, there are many more based on how often the customer replies to marketing emails, the time since they last login, are they a daily active user? etc. Then we can train the model to identify customers who might be leaving the service or product.\"]})})}),/*#__PURE__*/e(\"h2\",{children:/*#__PURE__*/e(\"strong\",{children:\"What\u2019s Next?\"})}),/*#__PURE__*/e(\"p\",{children:\"While the history of machine learning is quite recent even when compared to traditional computing, its adoption has accelerated over the last several years. It\u2019s becoming more and more clear that machine learning methods are helpful to many types of organizations in answering different kinds of questions they might want to ask and answer using data. As technology develops, the future of corporate machine learning lies in is ability to overcome some of the issues that, as of now, still prevent the widespread adoption of machine learning solutions, namely explainability and access to people beyond machine learning engineers.\"}),/*#__PURE__*/t(\"p\",{children:[\"Explainability refers to the degree to which a given outcome can be explained. In other words, why does this model work and what its limitations are? MindsDB actually already solves this by identifying values where it has enough information to make predictions and, what is perhaps even more important, where it \",/*#__PURE__*/e(\"em\",{children:\"doesn\u2019t\"}),\" have information to make predictions. From there it learns from these values to understand why things didn\u2019t work.\"]}),/*#__PURE__*/e(\"p\",{children:\"The second point, the democratization of machine learning, has already seen efforts to provide solutions, or at least facilitate, the use of machine learning by a larger group of developers. In particular, MindsDB allows people outside the niche of machine learning experts to use the tool and benefit from the predictions neural networks can make.\"}),/*#__PURE__*/e(\"p\",{children:\"Finally, with more access to the tools machine learning provides and a better understanding of how the algorithms work, machine learning experts (and others who use machine learning) can serve as better consultants and managers can make better decisions, which is the ultimate goal of every business.\"}),/*#__PURE__*/t(\"p\",{children:[\"Want to try it out yourself? Sign up for a free \",/*#__PURE__*/e(n,{href:\"https://cloud.mindsdb.com/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"MindsDB account,\"})}),\" and engage with the MindsDB community on \",/*#__PURE__*/e(n,{href:\"https://mindsdb.com/joincommunity\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Slack\"})}),\" or \",/*#__PURE__*/e(n,{href:\"https://github.com/mindsdb/mindsdb/discussions\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"GitHub\"})}),\" to ask questions, share and express ideas and thoughts.\"]}),/*#__PURE__*/t(\"p\",{children:[\"P.S. If this article was helpful, please give us a star on \",/*#__PURE__*/e(n,{href:\"https://github.com/mindsdb/mindsdb\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"GitHub\"})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});export const richText11=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/e(\"p\",{children:\"What do you imagine when you hear the job title \u201CData Scientist\u201D? Probably not a shabby looking white-collar worker with a stern look on their face. Right?\"}),/*#__PURE__*/e(\"p\",{children:\"Perhaps that is why Harvard Business Review coined \u201CData Scientists\u201D as \u201Cthe sexiest job of the 21st century\u201D. They wrote, \u201CIf \u2018sexy\u2019 means having rare qualities that are much in demand, data scientists are already there. They are difficult and expensive to hire and, given the very competitive market for their services, difficult to retain.\u201D\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/e(\"p\",{children:\"Data Scientists are technical professionals with the training and curiosity to make discoveries in the world of data. Although the term \u201CData Scientist\u201D is a recent popular choice on LinkedIn for anyone working with data, the field itself is not new. Thousands of Data Scientists had already been working in startups and companies at the time the HBR published its article. Moreover, the aim to make computers as intelligent as human beings has been pursued for nearly a quarter of a century. There are multiple reasons as to why Data Scientists have become so popular recently. For one, companies have been collecting increasing amounts of data for years ever since it became in vogue to do so, largely driven by the success large tech companies have had in profiting from the data they collect, and secondly from the advancements in technology that have allowed this data collection to become economical.\"}),/*#__PURE__*/e(\"h2\",{children:\"Huge amounts of data now readily available just waiting to be analyzed:\"}),/*#__PURE__*/e(\"p\",{children:\"An enormous amount of data is now available to most large companies across all industries, but many have not been using this in an efficient and productive way. However, companies are now waking up to the realization that they need to make use of this huge amount of data currently accessible to them through their corporate databases. How much data? 44 Trillion Gigabytes by 2020 up from only 4.4 Trillion in 2013.\"}),/*#__PURE__*/e(\"p\",{children:\"The volume and variety of data have created an opportunity for both those with the skills to make use of it and the businesses who have been collecting it. However, the industry is facing the shortage of skills and expertise that is required to handle the increasing demand from companies seeking to make use of their rich data. So much so that even individuals who have pursued computer science and technical programs at universities are being thrust into performing demanding data analytic positions in the workplace.\"}),/*#__PURE__*/e(\"h2\",{children:\"Structural shortage of people with data science skills\"}),/*#__PURE__*/t(\"p\",{children:[\"According to \",/*#__PURE__*/e(n,{href:\"https://engineeringonline.ucr.edu/blog/most-exciting-career-of-the-21st-century-the-data-scientist-shortage/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"stats from University of California, Riverside\"})}),\", 1/3rd of the US News & World reports top 100 Global Universities offer degrees in Data Science. Of these 29 universities, only six offer data science programs at Undergraduate level; the rest are postgraduate degrees. The average class size of these data science programs is just 23 students. The University of California predicts that small class sizes in an already limited number of universities offering Data Science programs are unlikely to make a \u201Cmeaningful dent in closing the global data science talent gap\u201D. In simple economic terms, demand outstrips supply, and in this case by a meaningful margin. In 2017, IBM predicted that the annual demand for new data scientists, data developers, and data engineers will reach nearly 700,000 openings by 2020. Therefore, a mere 23 student class size from one university and roughly around 700 graduating students from all universities offering data science programs will not fulfill the fast-growing demand for people with data science skills.\"]}),/*#__PURE__*/e(\"p\",{children:\"In 2018 the average salary for a junior level data scientist is $115,000 and those managing a team of 10\u201315 members can demand salaries as high as$350,000. Meanwhile, the median years of experience for a data scientist dropped from 9 years in 2014 to 6 years in 2015. Globally, the demand for data scientists is projected to exceed supply by more than 50% by 2019. With more than 40% of companies believing their inability to recruit data scientists is hindering their ability to compete it is no wonder over 60% of businesses train their staff in-house.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Andrew Ng Promoting Coursera\"}),/*#__PURE__*/e(\"h2\",{children:\"Two solutions to fill the gap\"}),/*#__PURE__*/e(\"p\",{children:\"There are two main approaches to help alleviate this skills shortage. Firstly, and one championed by AI superstar Andrew NG is to train more data scientists using non-traditional methods such as MOOCs (Massive Open Online Courses). While this is a brilliant way for current developers and other data-centric employees to \u201CSkill Up,\u201D it is not yet the solution to the bigger problem. I say \u201Cyet\u201D because this fundamentally requires a change in behavior. Employers don\u2019t yet place enough value on this type of education; many employers still look exclusively to the brand name universities when hiring. While this mentality is slowly changing, it is not coming quick enough to solve the problem in the short to medium term.\"}),/*#__PURE__*/e(\"p\",{children:\"The second approach is to enable more people without data science skills to apply these complex techniques to company data easily. In essence, let Artificial Intelligence and Machine Learning solve its own problems. By using techniques that have been developed (including here at MindsDB) over the last few years, it is possible to mimic a data scientist such that even a non-technical individual could perform data analytics with just a few lines of code or a few clicks.\"}),/*#__PURE__*/e(\"p\",{children:\"These two solutions are not mutually exclusive and will in tandem help companies use their data in a more meaningful way, driving cost savings and/or drive growth and revenue. For this to happen effectively there needs to be cultural changes inside organizations, resulting in better hiring policies and also a better use of tools and software that can solve many of the data problems they face without the need to expand headcount and hire an expensive data scientist.\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});export const richText12=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Open source projects have given birth to a range of useful software over the years. Many of the great technologies that we use today were born out of open source development! Android, Firefox, VLC media player, MongoDB, Linux, Docker and Python just to name a few.\"}),/*#__PURE__*/e(\"p\",{children:\"Even many of the tech giants realize the benefit and allow their employees to take a day off and dedicate their time to open source projects. In fact, many have open source projects themselves.\"}),/*#__PURE__*/e(\"p\",{children:\"However, the large majority of contributors to open source projects don\u2019t work for tech giants; anyone can leave their mark on an important piece of open software or create their own \u201Cnext big thing\u201D. Being part of an open source project can also help you improve your skills, learn something new, get mentorship or form life long friendships. Contributing to open source projects should be mutually beneficial in both the short and long term. Many companies actively hire full-time developers from those contributing the most to a project, and so doing so can be a great way to show off your skills, while learning new ones.\"}),/*#__PURE__*/e(\"p\",{children:\"This article combines a few tips that we share with those looking to get involved with MindsDB, and while every project is different hopefully these ideas will help you get involved in any open source project.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/t(\"p\",{children:[\"MindsDB\u2019s \",/*#__PURE__*/e(n,{href:\"https://github.com/mindsdb/mindsdb\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"GitHub page\"})})]}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"}),/*#__PURE__*/e(\"h2\",{children:\"Before Making Your First Contribution\"}),/*#__PURE__*/e(\"h3\",{children:\"1. Assess Yourself\"}),/*#__PURE__*/t(\"p\",{children:[\"The first step is to assess any technical or non-technical skill that you have or want to improve. Ask yourself \",/*#__PURE__*/e(n,{href:\"https://www.mindsdb.com/blog/please-reinvent-the-wheel\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"where can I add the most value\"})}),\"? This could be directly helping to write code, testing for bugs or even helping to improve documentation so others can use the software more efficiently.\"]}),/*#__PURE__*/e(\"h3\",{children:\"2. Get to Know GitHub\"}),/*#__PURE__*/e(\"p\",{children:\"Almost all open source projects used a version control system, a tool that helps with merging new code into the project (the main \u201Crepository\u201D). Usually, the collaboration is centered around a website that hosts the central repository. These websites include Github, Bitbucket and Gitlab, thought Github is by far the most popular one and the one we use here at MindsDB.\"}),/*#__PURE__*/t(\"p\",{children:[\"Generally speaking, version control systems allow keeping track of all changes in a project without saving several files. Make an account on Github, login and explore all the different tabs on the top of the website. Here you will find information about Github, development guides, open source projects, events, conferences etc. You can learn all about the basics of a GitHub by following this guide \",/*#__PURE__*/e(n,{href:\"https://guides.github.com/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"here.\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"3. Search for Relevant Projects and Join the Community\"}),/*#__PURE__*/t(\"p\",{children:[\"Search for relevant projects on Github based on your skills. You can use \",/*#__PURE__*/e(n,{href:\"https://github.com/explore\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Github Explore\"})}),\" for this purpose or sign-up for \",/*#__PURE__*/e(n,{href:\"https://www.codetriage.com/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Code Triage\"})}),\" to get an email on a different issue every day. While choosing a project to start on, look for a project that is actively maintained (loads of commits) and has a lot of issues. Once you have found your relevant projects, Star & Fork the project, subscribe to its mailing list and slack channel. This is the best way to get help if you are stuck in setting up the project or making your first contribution.\"]}),/*#__PURE__*/e(\"h2\",{children:\"Making Your First Contribution\"}),/*#__PURE__*/e(\"h3\",{children:\"1. Play With the Software andFind Bugs\"}),/*#__PURE__*/t(\"p\",{children:[\"First, try the software, install it and have a play, try to break it, see if it does what it says on the box. This is a great place where you can start to add value very easily, by reporting any issues you find. Each project is likely to have a slightly different template for reporting issues, but essentially they all contain similar information. (You can find MindsDB\u2019s Issue template \",/*#__PURE__*/e(n,{href:\"https://github.com/mindsdb/mindsdb/blob/master/.github/ISSUE_TEMPLATE/bug_report.md\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"here.\"})}),\")\"]}),/*#__PURE__*/e(\"h3\",{children:\"2. Explore Existing Issues\"}),/*#__PURE__*/e(\"p\",{children:\"Once you have figured out the project you want to contribute to, explore its Github repository, read the documents and go to the issues tab. Here you will find all the open issues that you can work on. These issues can be from beginner level to advance level. If the repository is properly maintained, the issues would be tagged with \u201Cbeginner\u201D, \u201Cfirst-timers\u201D, \u201Chelp-wanted\u201D etc. so that you can work on the easiest tasks to gain confidence and experience with the project.\"}),/*#__PURE__*/e(\"h3\",{children:\"3. Help Improve Documentation\"}),/*#__PURE__*/e(\"p\",{children:\"However, you don\u2019t have to code right away. You can contribute to documentation, creating the developer\u2019s guide, helping other people solve their issues, etc. Read the documentation and if you feel something is missing this can be a great first place to contribute. You can either raise an issue or, if you feel confident enough, you can add the missing parts yourself.\"}),/*#__PURE__*/e(\"h3\",{children:\"4. Suggest New Features\"}),/*#__PURE__*/e(\"p\",{children:\"If you like the project and find it useful, you can also start to request new features to help improve it. Or even better you can try to add them yourself.\"}),/*#__PURE__*/e(\"h2\",{children:\"The Cathedral and the Bazaar\"}),/*#__PURE__*/t(\"p\",{children:[\"A classic book about OSS is \",/*#__PURE__*/e(n,{href:\"https://monoskop.org/images/e/e0/Raymond_Eric_S_The_Cathedral_and_the_Bazaar_rev_ed.pdf\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"The Cathedral and the Bazaar\"})}),\". It explores \u201Cbazaar\u201D style development, a bottom-up approach that gives power to the developers and the users. Comparing it with the \u201Ccathedral\u201D style, a top-down approach where the power lies with managers and product owners.\"]}),/*#__PURE__*/t(\"p\",{children:[\"It\u2019s these ideas that gave rise to work approaches such as that described in the \",/*#__PURE__*/e(n,{href:\"https://agilemanifesto.org/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Agile Manifesto\"})}),\". But no matter how much corporations have tried to emulate a \u201Cbazaar\u201D approach to development, they can\u2019t do it quite so well as open source projects.\"]}),/*#__PURE__*/e(\"p\",{children:\"In the world of corporate projects, architects, managers and product owners lead the way. In the world of open source, it\u2019s users and developers that shape the specifications.\"}),/*#__PURE__*/e(\"p\",{children:\"Open source software is great because it taps into the \u201Ccollective intelligence\u201D of its developers and users. Most developers in an open source project stem from its core user-base, most \u201Cleaders\u201D in an open source project are simply the developers that put in the most ideas and code.\"}),/*#__PURE__*/e(\"p\",{children:\"This \u201Cbazaar\u201D approach is not necessarily better than the \u201Ccathedral\u201D approach, but it\u2019s a system worth trying. It can give a new developer a lot of power over a piece of software, regardless of external criteria such as age or seniority within the organization. The only token of exchange is code, the more valuable the contribution, the more you influence the design.\"}),/*#__PURE__*/e(\"p\",{children:\"If nothing else, you should work on some open source projects to experience this bottom-up style of software design.\"}),/*#__PURE__*/e(\"h2\",{children:\"Next Goals as an Open Source Developer\"}),/*#__PURE__*/e(\"h3\",{children:\"1. Attend Conferences\"}),/*#__PURE__*/t(\"p\",{children:[\"As an open source developer, you can attend conferences and events related to coding and technology. You can check out different events on \",/*#__PURE__*/e(n,{href:\"https://github.com/explore\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Github Explore\"})}),\" and try to attend those events close to you. MindsDB will be organizing meetups throughout 2019; if you\u2019d like to stay up to date with everything MindsDB you can subscribe to our mailing list.\"]}),/*#__PURE__*/e(\"h3\",{children:\"2. Get Paid for Open Source Development\"}),/*#__PURE__*/t(\"p\",{children:[\"Generally speaking, you are not paid for doing open source development as most of the work done is volunteered. However, if you cannot afford to spend unpaid time in open source development, you can either talk to your employer and pitch the idea for a project that may interest your employer as well or find a project which pays its open source developer. You can learn more from \",/*#__PURE__*/e(n,{href:\"https://opensource.guide/getting-paid/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Github\u2019s guide of getting paid for open source development.\"})}),\" Many companies (including MindsDB) also hire or pay top contributors for their work.\"]}),/*#__PURE__*/e(\"h3\",{children:\"3. Shine Your CV, Be a Mentor and Apply to Open Source Competitions\"}),/*#__PURE__*/e(\"p\",{children:\"You should mention all the projects that you have contributed to on your CV or add a link to your GitHub account on your CV or in a cover letter. Most employers are impressed with such accolades and prefer such candidates for hiring.\"}),/*#__PURE__*/t(\"p\",{children:[\"You can also become a mentor to people who are new to open source development. It\u2019s time to give back to the community and give guidance to the ones who are just starting out. There are several programs in which you can opt to become a mentor, e.g. \",/*#__PURE__*/e(n,{href:\"https://summerofcode.withgoogle.com/archive/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Google Summer of Code\"})}),\", \",/*#__PURE__*/e(n,{href:\"https://railsgirlssummerofcode.org/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Rails Girls Summer of Code\"})}),\", \",/*#__PURE__*/e(n,{href:\"https://www.outreachy.org/\",motionChild:!0,nodeId:\"jx5MRPdv1\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Outreachy\"})}),\", etc., or just helping people out by replying to their queries on mailing lists or StackOverflow.\"]}),/*#__PURE__*/e(\"p\",{children:\"\u200D\"})]});\nexport const __FramerMetadata__ = {\"exports\":{\"richText8\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText2\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText6\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText9\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText5\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText12\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText11\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText3\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText1\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText7\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText10\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText4\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["richText", "u", "x", "p", "Link", "motion", "richText1", "richText2", "richText3", "richText4", "richText5", "richText6", "richText7", "richText8", "richText9", "richText10", "richText11", "richText12", "__FramerMetadata__"]
}
