{"id":9872,"date":"2022-08-25T14:28:26","date_gmt":"2022-08-25T18:28:26","guid":{"rendered":"https:\/\/blogs.mathworks.com\/deep-learning\/?p=9872"},"modified":"2024-02-12T20:44:43","modified_gmt":"2024-02-13T01:44:43","slug":"lets-talk-about-low-code-ai","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/deep-learning\/2022\/08\/25\/lets-talk-about-low-code-ai\/","title":{"rendered":"Let&#8217;s Talk About Low-Code AI"},"content":{"rendered":"There\u2019s a trend toward low-code AI. Let\u2019s discuss what this means and how you can use this trend to your advantage.\r\n\r\n<!--more-->\r\n<h6><\/h6>\r\n<h2><img decoding=\"async\" loading=\"lazy\" width=\"625\" height=\"405\" class=\"alignnone size-large wp-image-9899\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2022\/08\/image7_blogLow.png\" alt=\"\" \/><\/h2>\r\n<h2>What is Low-Code AI?<\/h2>\r\nLow Code allows those with less programing skills to still work on complex, AI problems. This means not being tied to a particular coding language, but instead dedicating time to the problem AI is trying to solve.\r\n<h6><\/h6>\r\nHere are two examples.\r\n<h6><\/h6>\r\n&nbsp;\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td style=\"padding: 10px; border: 1px solid black;\" width=\"319\"><img decoding=\"async\" loading=\"lazy\" width=\"968\" height=\"492\" class=\"alignnone size-large wp-image-9896\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2022\/08\/image6_blogLow.png\" alt=\"\" \/><\/td>\r\n<td style=\"padding: 10px;\"><\/td>\r\n<td style=\"padding: 10px; border: 1px solid black;\" width=\"319\"><img decoding=\"async\" loading=\"lazy\" width=\"651\" height=\"366\" class=\"alignnone size-large wp-image-9893\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2022\/08\/image5_blogLow.png\" alt=\"\" \/><\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"padding: 10px;\" width=\"319\">PathPartner: used a low-code approach to determine the best machine learning algorithm for radar-based automotive applications\r\n<h6><\/h6>\r\nRead more about PathPartner\u2019s application <strong><u><a href=\"https:\/\/www.mathworks.com\/company\/user_stories\/case-studies\/pathpartner-develops-machine-learning-algorithms-for-radar-based-automotive-applications.html\">here<\/a><\/u><\/strong><\/td>\r\n<td style=\"padding: 10px;\"><\/td>\r\n<td style=\"padding: 10px;\" width=\"319\">DRASS, designing Smart Maritime Surveillance, used automation to help reduce the number of hours labelling input data by using labeler apps.\r\n<h6><\/h6>\r\nSee more on DRASS using MATLAB <strong><u><a href=\"https:\/\/www.mathworks.com\/videos\/smart-maritime-surveillance-system-1622073187188.html\">here<\/a><\/u><\/strong><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<h6><\/h6>\r\nThese are two distinct examples of customers using a low-code approach in AI. Of course, there are many more. The rest of this post will be dedicated to the nuances around low-code and where it could help (or not) with your AI projects.\r\n<h6><\/h6>\r\n<table>\r\n<tbody>\r\n<tr style=\"border-left: 1px solid #b04a96;\">\r\n<td style=\"padding: 10px;\" width=\"638\"><strong><em><span style=\"color: #b04a96;\">Is it Low-Code? Is it No-Code?<\/span><\/em><\/strong> Depending on the conversation, low-code and no-code could mean the same thing: one sounding slightly more extreme (no-code) and perhaps boxing you in to a stricter definition. If no-code translates to \"absolutely no coding\" it could be limiting when a few lines of code wouldn\u2019t hurt. Low-code is a bit more flexible: use code when it makes sense, and use less code when it makes sense to do so. I'll continue to use the term low-code, but feel free to replace low-code with no-code if that suits your project better.<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<h6><\/h6>\r\nThe term low-code could still mean different things to different people. Here are 4 ways to think about what the definition of low-code could be to you:\r\n<h6><\/h6>\r\n<h3>1. Low-Code means Automation<\/h3>\r\n<h6><\/h6>\r\nLet\u2019s take the task of video labeling: Honestly, any labeling really warrants itself to less code, and more point and click. Automating further than point and click, how about using an object detector to determine the bounding box around an object, and use that for a preliminary labeling device?\r\n<h6><\/h6>\r\n<h3>2. Low-Code means <em>Less<\/em> Code<\/h3>\r\n<h6><\/h6>\r\nThis is personally my favorite definition. The popularity of low-code may be due (in part) to people wanting to focus on the project at hand and not get caught up in the nuances of programming.\r\n<h6><\/h6>\r\nAn example of this is Experiment Manager: Keeping track of deep learning experiments is tedious. It's keeping records of parameters, saving results and being able to revisit certain ideas. This is definitely a situation in which code is less important than results.\r\n<h6><\/h6>\r\n<img decoding=\"async\" loading=\"lazy\" width=\"384\" height=\"269\" class=\"alignnone size-large wp-image-9890\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2022\/08\/image4_blogLow.png\" alt=\"\" \/>\r\n<h6><\/h6>\r\n<h3>3. Low-Code means Drag &amp; Drop<\/h3>\r\nIt makes sense to manipulate layers in a low-code fashion. Removing, adding, and reconnecting layers all can - <em>and should<\/em> - be done with a little code as possible.\r\n<h6><\/h6>\r\nUsing drag and drop in this case means not having to write code in order to modify, save and train new networks.\r\n<h6><\/h6>\r\n<img decoding=\"async\" loading=\"lazy\" width=\"361\" height=\"252\" class=\"alignnone size-large wp-image-9887\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2022\/08\/image3_blogLow.png\" alt=\"\" \/>\r\n<h6><\/h6>\r\n<h3>4. Low-Code = Automatic code generation<\/h3>\r\n<h6><\/h6>\r\nHow about doing something once and then automatically generating the code needed to do it again? You'll still get code from this method, but it's a low-<em>typing<\/em> amount of code. One of the key components of AI is reproducibility. Being able to store and manage AI experiments means having a written down method to reproduce results. With this in mind, <em>no<\/em>-code doesn't necessarily work here. Instead, you'd want a representation of the data\/model\/training in a way that others could reproduce it. Generating code in this fashion makes sense.\r\n<h6><\/h6>\r\n<h2>How does low-code differ from a traditional approach?<\/h2>\r\n\u2026 and why is this a trend now? It's all about AI*: low-code delivers AI to the masses. Not everyone can or wants to program, but many more people want to be part of the AI trend. Plus, when you're learning something new, who wants to be focused on the code when your primary goal is to focus on accomplishing the new task?\r\n<h6><\/h6>\r\n<em>*And yes, the trend of low-code extends beyond AI. But beware: if you are interested in low-code for AI, don't assume that all low-code options will be good for deep learning and machine learning. General purpose low-code tools may not have everything you need to be successful with AI. I will elaborate this at the end.<\/em>\r\n<h6><\/h6>\r\nLet's say there are a handful of people who are working on cutting edge research in AI\u2026 ok more than a handful. These people are deep in the trenches of AI models. They are manipulating layers, experimenting with different learning parameters, and their job is to deliver a new approach to AI with new research. They are not concerned with delivering this approach to the masses for ease of use and exploration on day 1. These people will most likely not be interested in a lower-code approach because their job is to be as close to the details and inner workings of the model as possible.\r\n<h6><\/h6>\r\nThen there are the people who want to adopt the research and apply to their industry and application. This is the next phase for people who may not be as deep into the coding, but still want to apply the knowledge. Finally, you have people who want to interact with AI, but not touch code at all. And there are people across this entire spectrum.\r\n<h6><\/h6>\r\nThere will always be a lag between the cutting-edge research and the mainstream user. Someone needs to put together a low- or no-code option for the mainstream users to feel most comfortable. In a way, the idea is to speed up the accessibility of the research by introducing low-code concepts that can quickly turn cutting edge research into reality for a larger population.\r\n<h6><\/h6>\r\n<img decoding=\"async\" loading=\"lazy\" width=\"548\" height=\"340\" class=\"alignnone size-large wp-image-9884\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2022\/08\/image2_blowLow.png\" alt=\"\" \/>\r\n<h6><\/h6>\r\n<em>My 30 second drawing attempting to explain the correlation between cutting edge research and expert level coding. High coding ability gives you access to the most cutting edge models. If you are waiting for low-code, the latest model may not be available yet.<\/em>\r\n<h6><\/h6>\r\nThe more cutting edge, the more you will need to be closely tied into the code. Low-code isn\u2019t an option for the latest research, so there will be a lag between the latest AI model and the ability to implement it in a low-code way.\r\n<h6><\/h6>\r\n<h2>How to win over the nay-sayers?<\/h2>\r\n<h6><\/h6>\r\nLow-code may be another fad. It\u2019s possible. What about the engineers that actually like to code?\r\n<h6><\/h6>\r\nTo those people, I say: code away... BUT wouldn't it be nice to automate some of the more tedious parts of your job? Let's revisit the automation discussion from the previous section. I don't meet a lot of people who are very excited to hand-write code for labeling. Consider this alternative: how about using an app to help with labeling objects from video? Then focus your time on the unique code that needs to be created: the new and exciting challenges.\r\n<h6><\/h6>\r\n<h2>Key concepts to keep in mind<\/h2>\r\n<h6><\/h6>\r\n<ol>\r\n \t<li>Understand the requirements of the project up front. If you spend a lot of time prototyping, it could be a perfect opportunity for low-code. Focus on the parts of the project that are interesting (code), repetitive (don't code) and reproducible (don't code). Keep in mind the term \"efficiency\" : You may love to code, but few engineers enjoy being inefficient.<\/li>\r\n \t<li>Make sure that you are using a low-code solution that incorporates the technology you need. For example: some options are traditional machine learning algorithms only, and the most up to date deep learning models won't be included. You won't find value in using an \"app\" that doesn\u2019t contain the newest technology or the technology you need.<\/li>\r\n \t<li>Think about the end user. We've already discussed experiment manager above. This will help anyone who is interested in the results of the AI experiment understand and evaluate the performance without looking at lines of code. You may also have people that want to interact further with the code but not be required to manually type anything. For example: what about an option to change the AI model from a variety of options, to see the different results and interact with the models directly? With, Live tasks, you can have this option: we've written on this blog about this <a href=\"https:\/\/blogs.mathworks.com\/deep-learning\/2020\/06\/11\/mask-detection-using-deep-learning\"><span style=\"text-decoration: underline;\">option in the past<\/span><\/a>, using the example of object detection. <a href=\"https:\/\/github.com\/mathworks\/JP_low-code-matlab-with-live-tasks\"><span style=\"text-decoration: underline;\">Live tasks<\/span><\/a> allow non-programmers the ability to manipulate code without introducing errors. This is a low-code option available in MATLAB.<\/li>\r\n<\/ol>\r\n&nbsp;\r\n<h6><\/h6>\r\n<img decoding=\"async\" loading=\"lazy\" width=\"564\" height=\"363\" class=\"alignnone size-large wp-image-9881\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2022\/08\/image1_blogLow.png\" alt=\"\" \/>\r\n<h6><\/h6>\r\nFinally, <strong>MATLAB and Simulink have been in the low-code business for decades.<\/strong> MATLAB has invented and reinvented ways of making your life easier with less code. MATLAB had apps before apps were a thing and will continue to have apps long after they are a thing too.\r\n<h6><\/h6>\r\nIn addition, with MATLAB you don't have to worry about a general purpose, low-code solution unable to help solve your specific problems. The toolboxes cover all the specifics about each application you need. So if you are interested in low-code for AI, don't assume that all low-code options will be good for deep learning and machine learning. The developers who are working on Deep Learning Toolbox\u00a0 and Machine Learning Toolbox are working on specific low-code options for AI, because they understand that while many people want to incorporate AI, not everyone wants to code.\r\n<h6><\/h6>\r\n<strong><em>What\u2019s your experience with low-code AI tools? What\u2019s your definition of low-code? Leave a comment below\u2026<\/em><\/strong>\r\n<h6><\/h6>\r\n<p><a href=\"https:\/\/twitter.com\/jo_pings?ref_src=twsrc%5Etfw\" class=\"twitter-follow-button\" data-size=\"large\" data-show-count=\"false\">Follow @jo_pings<\/a><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img decoding=\"async\"  class=\"img-responsive\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2022\/08\/image7_blogLow.png\" onError=\"this.style.display ='none';\" \/><\/div><p>There\u2019s a trend toward low-code AI. Let\u2019s discuss what this means and how you can use this trend to your... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/deep-learning\/2022\/08\/25\/lets-talk-about-low-code-ai\/\">read more >><\/a><\/p>","protected":false},"author":156,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[9,57,12],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/posts\/9872"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/users\/156"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/comments?post=9872"}],"version-history":[{"count":24,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/posts\/9872\/revisions"}],"predecessor-version":[{"id":9971,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/posts\/9872\/revisions\/9971"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/media?parent=9872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/categories?post=9872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/tags?post=9872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}