Answers.Body: <p>Adaptive/predictive features are useful in at least some everyday applications. Take text messaging, for instance. All smartphone SMS apps that I know of keep track of the words you use in close proximity and use that information to predict the next word in a message you're typing. (Some are smarter than others. <a href="https://xkcd.com/1068/">Relevant XKCD.</a>) It can be used to personalize automatic spelling correction as well.</p>
  
  <p>A potential application interesting to me personally is tile-based level editors, like for classic DOS games. I've been <a href="https://fleexlab.blogspot.com/search/label/markeen">working on a program</a> that gathers the probabilities of each tile being close to every other tile and uses that information to construct random new levels. It hasn't produced anything playable yet, but I think it has the potential to assist human level builders by e.g. automatically filling in the missing tile that fits in a newly placed structure, as opposed to requiring the human to go find the right one in the palette.</p>
  
  <p>In general, AI could be applied <em>very</em> usefully into figuring out what the user might want to do next and expediting the process of implementing the correct guess while staying out of the way if the user is intentionally doing something unexpected.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-10-08T17:37:31.450Z
Answers.LastActivityDate: 2016-10-08T17:37:31.450Z
Answers.UserDisplayName: Ben N
Answers.Body: <p>I believe AI is rarely used in mainstream apps, but it could be, and I think slowly will be.</p>
  
  <p>If the information an app's AI must learn arises within the app, from user interaction or error, it'd be smart if the program could log that kind of information and then look for patterns in the logs.  It could profile users to see ehat tasks are done most often, how many steps are needed.  Then when it recognizes that task recurring, it could ask the user if they wanted it to execute a macro that did the following [then it presents then with a list of the steps, allowing them to edit as needed].  Then it executes the 'macro' that it learned from observing the user.</p>
  
  <p>Another use of AI is error detection, not only in the software, but in user error when the software was used inefficiently, redundantly, or improperly.  If the software were designed such that it was given a set of models of user tasks (like AI plans), it could observe users in the way they achieve known tasks, and offer suggestions or ask for confirmation that imminent unusual outcomes are intended.</p>
  
  <p>And of course, AI could be used extensively in user interface design, on devices, web sites, or apps.  Some of this, like voice recognition, is entering the mainstream of daily use just now.  As conversations with apps that can add their own data and models of tasks/concepts/domains develop further, the need for AI <em>inside</em> the app will only grow.</p>
  
  <p>There are a <em>ton</em> of ways that AI could be used in apps.  A few of these have started to arise in mobile devices and their apps, usually in fusion of user mobility with external web-based databases (e.g. GPS and maps), but IMO it's been slow.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-10-14T20:36:24.283Z
Answers.LastActivityDate: 2016-10-14T20:36:24.283Z
Answers.UserDisplayName: Randy
Answers.Body: <p>One critical part of AI is machine learning (ML). The common definition of ML by Mitchell is</p>
  
  <blockquote>
    <p>A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E.</p>
  </blockquote>
  
  <p>If this type of program is useful in an "everyday application" depends on the application. Here are some examples which would not be possible without ML:</p>
  
  <ul>
  <li>Spam detection (e.g. e-mails, forums)</li>
  <li>Fraud detection (e.g. credit cards)</li>
  <li>Image recognition (e.g. if you want to automatically filter NSFW content, automatic adding of tags / making images searchable e.g. for Google Image search)</li>
  <li>Video analysis (filtering copyrighted work e.g. on YouTube)</li>
  <li>Speech recognition (e.g. hotlines, automatic caption generation)</li>
  <li>Autocompletion (probably one of the simplest things you can do with data)</li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-10-24T08:05:09.393Z
Answers.LastActivityDate: 2016-10-24T08:05:09.393Z
Answers.UserDisplayName: Martin Thoma
Answers.Body: <p>Yes, but probably only to a limited degree in the near term.</p>
  
  <p>Where people draw the boundaries around 'artificial intelligence' is fuzzy, but if one takes the broad view, where it incorporates any sort of coding of explicitly cognitive functions, then many routine economic tasks can benefit from artificial intelligence. Many search engines, for example, can be seen as offering artificial intelligence applications as a service.</p>
  
  <p>For more 'standard' applications, most near-team applications of AI have to deal with fraud detection and prevention. If you track a user's cursor moving across the screen, for example, you can build a model that differentiates between humans and bots, and treat the two separately. See <a href="https://nakedsecurity.sophos.com/2014/12/05/i-am-not-a-robot-google-swaps-text-captchas-for-quivery-mouse-clicks/">this article</a> for an example.</p>
  
  <p>In the longer term, of course, a program that could write programs could write these sort of applications like any other.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-10-08T15:34:40.337Z
Answers.LastActivityDate: 2016-10-08T15:34:40.337Z
Answers.UserDisplayName: Matthew Gray
Body: <p>I'm curious about Artificial Intelligence. In my regular job, I develop standard applications, like websites with basic functionalities, like user subscription, file upload, or forms saved in a database.</p>
  <p>I mainly know of AI being used in games or robotics fields. But can it be useful in &quot;standard&quot; application development (e.g., web development)?</p>
  
Tags: <applications>
Title: Is AI programming useful in everyday programs?
UserDisplayName: tomahim
ThreadText: # Is AI programming useful in everyday programs?
  
  (Asked by: username_0 on 2016-10-07)
  
  I'm curious about Artificial Intelligence. In my regular job, I develop standard applications, like websites with basic functionalities, like user subscription, file upload, or forms saved in a database.
  
  I mainly know of AI being used in games or robotics fields. But can it be useful in "standard" application development (e.g., web development)?
  
  **Tags:** applications
  
  ---
  
  ## 4 answers
  
  ### Answer by username_4 on 2016-10-08. Score: 7 | Accepted answer
  
  Yes, but probably only to a limited degree in the near term.
  
  Where people draw the boundaries around 'artificial intelligence' is fuzzy, but if one takes the broad view, where it incorporates any sort of coding of explicitly cognitive functions, then many routine economic tasks can benefit from artificial intelligence. Many search engines, for example, can be seen as offering artificial intelligence applications as a service.
  
  For more 'standard' applications, most near-team applications of AI have to deal with fraud detection and prevention. If you track a user's cursor moving across the screen, for example, you can build a model that differentiates between humans and bots, and treat the two separately. See [this article](https://nakedsecurity.sophos.com/2014/12/05/i-am-not-a-robot-google-swaps-text-captchas-for-quivery-mouse-clicks/) for an example.
  
  In the longer term, of course, a program that could write programs could write these sort of applications like any other.
  
  
  ---
  
  ### Answer by username_1 on 2016-10-08. Score: 6
  
  Adaptive/predictive features are useful in at least some everyday applications. Take text messaging, for instance. All smartphone SMS apps that I know of keep track of the words you use in close proximity and use that information to predict the next word in a message you're typing. (Some are smarter than others. [Relevant XKCD.](https://xkcd.com/1068/)) It can be used to personalize automatic spelling correction as well.
  
  A potential application interesting to me personally is tile-based level editors, like for classic DOS games. I've been [working on a program](https://fleexlab.blogspot.com/search/label/markeen) that gathers the probabilities of each tile being close to every other tile and uses that information to construct random new levels. It hasn't produced anything playable yet, but I think it has the potential to assist human level builders by e.g. automatically filling in the missing tile that fits in a newly placed structure, as opposed to requiring the human to go find the right one in the palette.
  
  In general, AI could be applied *very* usefully into figuring out what the user might want to do next and expediting the process of implementing the correct guess while staying out of the way if the user is intentionally doing something unexpected.
  
  
  ---
  
  ### Answer by username_2 on 2016-10-14. Score: 2
  
  I believe AI is rarely used in mainstream apps, but it could be, and I think slowly will be.
  
  If the information an app's AI must learn arises within the app, from user interaction or error, it'd be smart if the program could log that kind of information and then look for patterns in the logs. It could profile users to see ehat tasks are done most often, how many steps are needed. Then when it recognizes that task recurring, it could ask the user if they wanted it to execute a macro that did the following [then it presents then with a list of the steps, allowing them to edit as needed]. Then it executes the 'macro' that it learned from observing the user.
  
  Another use of AI is error detection, not only in the software, but in user error when the software was used inefficiently, redundantly, or improperly. If the software were designed such that it was given a set of models of user tasks (like AI plans), it could observe users in the way they achieve known tasks, and offer suggestions or ask for confirmation that imminent unusual outcomes are intended.
  
  And of course, AI could be used extensively in user interface design, on devices, web sites, or apps. Some of this, like voice recognition, is entering the mainstream of daily use just now. As conversations with apps that can add their own data and models of tasks/concepts/domains develop further, the need for AI *inside* the app will only grow.
  
  There are a *ton* of ways that AI could be used in apps. A few of these have started to arise in mobile devices and their apps, usually in fusion of user mobility with external web-based databases (e.g. GPS and maps), but IMO it's been slow.
  
  
  ---
  
  ### Answer by username_3 on 2016-10-24. Score: 1
  
  One critical part of AI is machine learning (ML). The common definition of ML by Mitchell is
  
  > A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E.
  
  If this type of program is useful in an "everyday application" depends on the application. Here are some examples which would not be possible without ML:
  
  * Spam detection (e.g. e-mails, forums)
  * Fraud detection (e.g. credit cards)
  * Image recognition (e.g. if you want to automatically filter NSFW content, automatic adding of tags / making images searchable e.g. for Google Image search)
  * Video analysis (filtering copyrighted work e.g. on YouTube)
  * Speech recognition (e.g. hotlines, automatic caption generation)
  * Autocompletion (probably one of the simplest things you can do with data)
  
  
  ---
  
  