Skip to main content

Blog

Learn About Our Meetup

5000+ Members

MEETUPS

LEARN, CONNECT, SHARE

Join our meetup, learn, connect, share, and get to know your Toronto AI community. 

JOB POSTINGS

INDEED POSTINGS

Browse through the latest deep learning, ai, machine learning postings from Indeed for the GTA.

CONTACT

CONNECT WITH US

Are you looking to sponsor space, be a speaker, or volunteer, feel free to give us a shout.

Author: torontoai

Prof. Anca Dragan Talks About Human-Robot Interaction for WIRED

Prof. Anca Dragan
gave a talk as part of the WIRED25 summit, explaining some
of the challenges robots face when interacting with people. First, robots that
share space with people, from autonomous cars to quadrotors to indoor mobile
robots, need to anticipate what people plan on doing and make sure they can
stay out of the way. This is already hard, because robots are not mind readers,
and yet they need access to a rough simulator of us, humans, that they can use
to help them decide how to act. The bar gets raised when it’s crowded, because
then robots have to also understand how they can influence the actions that
people take, like getting another driver to slow down and make space for a
merging autonomous car. And what if the person decides to accelerate instead?
Find out about the ways in which robots can negotiate these situations in the
video below.

Continue reading

[D] AI to monitor network

Hello,

I have monitoring system watching for bandwidth, connections and connections rates from multiple firewalls, which is stream of counters with interval 5 min.

My current system create baseline from data for last 4 weeks and compare current value with baseline. It is ok but it either give me lots of false alerts or too slow to react without additional triggers. Is there anything better available today ? Some system I can feed data in that will learn patterns and identify outages in real time.

Open source, but that I can use without getting into machine learning theory too deep just to start using it 🙂

Thank you

submitted by /u/nvitaly
[link] [comments]

[N] “How AI is changing the world” – links to the 15 minute talks from the global event series I co-organized

We ran an event in NYC, Tel Aviv, and SF, where we asked AI companies to speak about what they do for 10-15 minutes. Seems I can’t link all of them because of some reddit limitation, so here are a few links but this is the YouTube playlist with all the talks.

submitted by /u/ubershmekel
[link] [comments]

[D] Voice Assistant: Better to use a model trained on commands or just use STT?

I would like to make a deep-learning based voice assistant for an application I have that controls a digital camera. Some example commands are “auto focus”, “set zoom to 2”, “turn off flash”, etc.

I see two ways of going about this:

  1. Train a model that classifies an audio snippet as containing one of the commands or background noise. This seems easier than option 2 but also less robust, as I would have to retrain the model every time I add a new command. Also not sure how numbers would work (record myself saying every number up to like 100?).

  2. Use STT to convert audio to text and do some fuzzy string matching to see if it matches a command. I’ve downloaded Mozilla’s DeepSpeech and it did not seem to work very well, so I’m guessing that creating a good STT model is very difficult.

Which of these is a better approach? Or is there some in-between approach that’s even better?

submitted by /u/elmosworld37
[link] [comments]

[P] OpenAI Safety Gym

From the project page:

Safety Gym

We’re releasing Safety Gym, a suite of environments and tools for measuring progress towards reinforcement learning agents that respect safety constraints while training. We also provide a standardized method of comparing algorithms and how well they avoid costly mistakes while learning. If deep reinforcement learning is applied to the real world, whether in robotics or internet-based tasks, it will be important to have algorithms that are safe even while learning—like a self-driving car that can learn to avoid accidents without actually having to experience them.

https://openai.com/blog/safety-gym/

submitted by /u/hardmaru
[link] [comments]

Designing conversational experiences with sentiment analysis in Amazon Lex

To have an effective conversation, it is important to understand the sentiment and respond appropriately. In a customer service call, a simple acknowledgment when talking to an unhappy customer might be helpful, such as, “Sorry to hear you are having trouble.” Understanding sentiment is also useful in determining when you need to hand over the call to a human agent for additional support.

To achieve such a conversational flow with a bot, you have to detect the sentiment expressed by the user and react appropriately. Previously, you had to build a custom integration by using Comprehend APIs. As of this writing, you can determine the sentiment natively in Amazon Lex.  This post demonstrates how to use user sentiment to manage conversation flow better.  We will describe the steps to build a bot, add logic to update response based on user sentiment and configure hand over to an agent.

Building a bot

We will use the following conversation to model a bot:

User: When is my package arriving? It’s so late.

Agent: Apologies for the inconvenience. Can I get your tracking number?

User: 21132.

Agent: Got it. It should be delivered to your home address on Nov 27th.

User: Great, thanks.

Now, let’s build an Amazon Lex bot with intents to track delivery status and change delivery date. The CheckDeliveryStatus intent elicits tracking number information and responds with the delivery date. The ChangeDeliveryDate intent updates the delivery to a new date. In this post, we maintain a database with the tracking number and delivery date. You can use an AWS Lambda function to update the delivery date.

To enable sentiment analysis in the bot, complete the following steps:

  1. On the Amazon Lex console, click on the bot
  2. Under Settings, choose General
  3. For Sentiment Analysis, choose Yes
  4. Click on Build to create a new build

Adding logic to modify response

Now that you set up the bot, add logic to respond to the user’s sentiment. The dialog code hook in the CheckDeliveryStatus examines the sentiment score. If the score for negative sentiment is above a certain threshold, you can inject an acknowledgment such as “Apologies for the inconvenience” when prompting for the tracking number. See the following Lambda code snippet:  

if (negativeSentimentVal > RESPONSE_THRESHOLD) {
    callback(
        intentHandler.elicitSlot(
            intentRequest.sessionAttributes,
            intentRequest.currentIntent.name,
            intentRequest.slots, "trackingNumber",
            intentHandler.constructMessage("Apologies for the inconvenience. What is your order id?" )
            )
        );
}

The following event is passed to the Lambda function:

{
    "messageVersion": "1.0",
    "invocationSource": "DialogCodeHook",
    "userId": "xxx",
    "sessionAttributes": {},
    "requestAttributes": null,
    "bot": {
        "name": "DeliveryBot",
        "alias": "$LATEST",
        "version": "$LATEST"
    },
    "outputDialogMode": "Text",
    "currentIntent": {
        "name": "CheckDeliveryStatus",
        "slots": {
            "trackingNumber": null
        },
        "slotDetails": {
            "trackingNumber": "trackingNumber"
        },
        "confirmationStatus": "None"
    },
    "inputTranscript": "When is my package arriving? It’s so late.",
    "recentIntentSummaryView": null,
    "sentimentResponse": {
        "sentimentLabel": "NEGATIVE",
        "sentimentScore": "{
            Positive: 0.005262882,
            Negative: 0.6347739,
            Neutral: 0.35993648,
            Mixed: 2.6722797E-5
        }"
    }
}

You can also perform analytics across multiple conversations by keeping track of the aggregated score at the conversation level. This post maintains a database with an entry for each intent. You can store the aggregate of the sentiment scores for each intent per conversation in the table, and use this information to get insights into how specific intents are performing. You can also track overall sentiment at a user or bot level.

Configuring the handover

Lastly, let us review the configuration for hand over to an agent. You could trigger this path if the user sentiment is very negative: “Where’s my delivery? This is so frustrating.”

Use an Amazon Connect contact flow to perform the handover. You can set a higher threshold to initiate the handover. Add an AgentHandover intent to the bot definition.  Trigger the AgentHandover intent in the dialog code hook Lambda if the negative sentiment is above the threshold. The following screenshot shows the contact flow in Amazon Connect:

The following Lambda code snippet triggers the handover to an agent:

if (negativeSentimentVal > AGENT_HANDOVER_THRESHOLD) {
    callback(
        intentHandler.confirmIntent(
            intentRequest.sessionAttributes,
            "AgentHandover",
            intentRequest.slots,
            intentHandler.constructMessage("Apologies for the inconvenience. Would you like to speak to an agent?" )
            )
    );
}

Conclusion

This post demonstrated how you can understand user sentiment and enhance conversation flow. You can also perform analytics on sentiment information or hand over the call to a human agent. For more information about incorporating these techniques into your bots, please see the documentation.


About the authors

Anubhav Mishra is a Product Manager with AWS. He spends his time understanding customers and designing product experiences to address their business challenges.

 

 

 

Kevin Cho works as a Software Development Engineer at Amazon AI. He works on simplifying and improving the Lex user experience. Outside of work he can be found discovering new food around Seattle or playing basketball with friends and family.

 

 

 

 

[Discussion] Confusion around Multi-Step and Multivariate LSTM Time Series Forecasting

Hi everyone, I’m currently trying to develop an LSTM RNN for predicting train delays. I looked into Time Series Forecasting Models and different approaches but can’t seem to figure out which model to use.

I want to implement multiple features, like delay, train number, date, time and current weekday. The output of the model should be a delay in minutes.

I have trouble understanding the difference between Multistep, Multivariate and Multistep-Multivariate Time Series Forecasting.

Can somebody please elaborate?

submitted by /u/boneless_baku
[link] [comments]