Code Monkey home page Code Monkey logo

requests-for-research's Introduction

Status: Archive (code is provided as-is, no updates expected)

Requests for Research

It's easy to get started in deep learning, with many resources to learn the latest techniques. But it's harder to know what problems are worth working on.

This repository contains a living collection of important and fun problems to help new people enter the field, and for enthusiastic practitioners to hone their skills. Many will require inventing new ideas.

Also check out our new list: Requests for Research 2.0

If you've solved a problem

Please write up the problem in a Gist or paper, and open a pull request linking it in a "solutions" section for the relevant problem. (Alternatively, let us know about it in community chat.)

The best solutions will contain both code and an explanation of your methodology. Please also feel free to report things you tried that didn't work, or anything else helpful to someone trying to learn how to do their own deep learning research.

We'll accept multiple solutions to each problem, so long as each solution is materially different.

This repository

This respository hosts the source for the requests for research. Feel free to open a pull request. Especially encouraged are:

  • Suggestions for new problems
  • Suggestions for improvements to existing problems
  • Links to your solution.

Running this repo locally

Install or upgrade jekyll via gem install jekyll. You can run this repo locally via:

jekyll serve -w

Your content will then be available at http://127.0.0.1:4000/. It won't be styled, but that should be enough to get started.

requests-for-research's People

Contributors

chasethomas avatar christopherhesse avatar dojoteef avatar ethancaballero avatar gdb avatar hyperdo avatar iaroslav-ai avatar ilyasu123 avatar jonasschneider avatar joschu avatar kaixhin avatar kvfrans avatar miffyli avatar paulproteus avatar srush avatar sygi avatar taivop avatar wojzaremba avatar yanjon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

requests-for-research's Issues

Add links to jokes corpus.

Hi!

I recently tried Train a language model on a jokes corpus research and for that purpose I've crawled few jokes sites and trained char-rnn language model on that. However, the output wasn't really funny.

Here's the dataset that I've used. However, please note that some of these jokes are really creepy. I tried to filter some of them out, but... well, it's just crawled from jokes site, can't do anything about it.

Unsupervised reinforcement learning via intrinsic motivation

Hello @gdb and @joschu,

I wonder whether you have considered adding project on intrinsic motivation. Here are a few papers that have stood out to me:

  1. Causal Entropic Forces
  2. Empowerment introduction
  3. Variational Empowerment
  4. Unsupervised Real-time Control through Variational Empowerment
  5. Unsupervised learning of Goal Spaces

I'm currently working in this area and have worked on practical variations of the Causal Entropic Forces paper in the past. Personally, I think that this field has a lot of potential both in terms of practical and theoretical contributions.

For concrete projects, I have several experiments and extensions/generalisations of the above papers in mind, and I'm working on such an extension, but before making this issue longer it would be useful to know whether this research area interests OpenAI.

Background information for "Spam the spammers"

A bit of background info about me, I co-founded a startup in the security industry, my main focus is to collect security related data (spams, attacks, ...) to identify infected or in other way compromised hosts on the internet. Therefor we built a sensor network to collect ~500 million security events per day, ~70% of it Spam alone. I did a lot of research based on the data to find out how Spams look like, where they originate from or what mechanisms where used to send them. I'd like to share my findings about Email Spam with you because they might be helpful for your "Spam the spammers" idea.

First I'd like to stress that Spammers send Spam, not because they want to annoy you, but because they want to make money. The business model behind each Spam can be very different. Spams are used to advertise real e-commerce platforms or services, phish for account information, distribute malware or trick you into behavior to for example share information you shouldn't share. So the purpose of Spam sometimes would be to directly drive sales of products where others would be to expand resources. Only a fraction of the different business models of Spam require a reply from the recipient of the Spam and most Spams are designed to provide that reply or feedback through other communication channels than Email. This is because of the very nature of how Spam is distributed. Sending the amount of Spam we currently face require mechanisms very different to traditional Email infrastructures. Spammers don't use they're own infrastructure to send Spam, they use other people resources. They use malconfigured Email servers, compromised accounts, vulnerable websites, infected computers, compromised servers, they get very creative I saw printers and TVs send Spam. Using other people resources often mean you need to impersonate a valid sender to send out your Spam. Impersonating valid senders or using other people services for Spam often mean you can't reach out to the original sender of the Spam anymore. Replies on Spams would end up on real people Email inboxes or would be denied by real Email infrastructure. The protocol used for Spam is purely for getting your content out into the world, not actually to use it in the intended way.

So, as much as I like the idea of Spamming the Spammers I think replying on Spams in a large scale fashion would hurt the wrong people, who are not even aware that they send Spams.

What I noticed in Spam content was that different campaigns often use similar or even the same template. Templates would often use Spintax combined with static blocks of text. Of course there are more sophisticated techniques to generate the Spam corpus, but this applied almost only to highly targeted content. The high volume Spammers don't care about quality they care about volume and throughput. So to kill 90% of the Spam out there template based detection mechanisms should be sufficient. The techniques currently used by the industry to detect Spam on the content level are very primitive I would say, that's why Spam is still an issue. What I would like to see is an approach to detect Spam not on a content level, but on a communication level. I noticed Spammers often use the same software underneath to send out Spam. This software leaves traces in how a Spammer communicate and behave on a protocol level. There are traces in all layers starting from IP, TCP up to the application layer. I would like to see learning mechanisms, which learn how Spammers communicate and kill them before their content hit your inbox.

Questions on the "Spam the Spammers" Problem

I don't know where I should put this. It's not a PR because I haven't build anything yet. I want to clarify some points first and lay out my thoughts and procedures before I decide whether to actually build this thing. It is possible that I am completely missing the point of this challenge.

  • Send Automatic Emails - As soon as you receive an email, wait a few minutes, then send a response...
  • That Are Replies Of Previous Emails - Spammers have solved this AI-Hard problem by using "generic comments" when responding to blog posts. You can see an example of generic comments in this gist, written in "Spintax". These comments attempt to portray the existence of a reader who have consumed the content thoughtfully, and wants to raise some points about the content. (A new corpus must be designed though, possibly based on experiences in 419eater.com.)
  • Waste Time - Lenny is a loop of pre-recorded responses that plays whenever a telemarketer calls a phone number. The responses appear very generic, though they present the illusion of talking to an elderly person that is interested in the telemarketer but is constantly forgetful. Usually, the telemarketer will converse for a certain period of time (can vary) before the telemarketer either hangs up or realizes they are being fooled.
  • Not Easy To Detect - This requirement is vague and unclear. Obviously, the deception should not be impossible to detect...if you give the "defender" unlimited time, and unlimited interactions, the facade should be easy to detect. Furthermore, if you are dealing with the same program multiple times, detection should obviously come easier to the "defender" (simply because the "defender" have now saw the "patterns" that the AI uses to generate the email). At the same time, the "defender" starts off at a severe disadvantage simply due to the novelty of receiving an email. Usually, most emails are believed to be sent by a human, so a "defender" would assume that an email is good, and so long as the context is human-like, everything should be okay. Thus, most decent programs whatsoever will "not be easy to detect". This inherent disadvantage should go away after multiple interactions though.

So my questions are:

  1. Why should machine learning be seen as appropriate venue for this problem? After all, spammers are able to write up a corpus of comments properly that are effective at fooling a few bloggers. Why not just write up a corpus of prepared emails ("that's a good email, but I have one minor question...") that can be sent instead? Relying on a machine learning algorithm means you have to teach the machine algo how to write, which seems like a rather time-consuming process (and possibly error-prone). The "Request For Research" links to the paper Exploring the Limits of Language Modeling, which had generated pretty good sentences (so long as you exclude the "short and politically incorrect" sentences)...but there doesn't seem to be any sort of larger-scale organization involved in sentence generation. This is...problematic. Without any larger-scale organization, it's just a bunch of random sentences that seem rather useless. I think this issue could probably be alleviated by writing a pre-written corpus of email replies and then training the ML algorithm on that corpus, but I'm afraid that the results may not be fairly pretty...and since you lack large-scale structure, I feel that the resulting emails would be very incoherent babble. If you could convince the ML algorithm to generate random sentences that appear to fit a certain "theme" though ("I am interested in your topic, tell me more!")...then it might work, but this would still be difficult. TL;DR: Using ML algorithms on this problem seems to be equivalent to using a toothpick to dig a hole in the ground, especially when people have already discovered shovels.
  2. Would a complete reliance on apophenia count as a "new idea" that is used to solve this problem? Apophenia is the tendency of humans to see patterns where none exist. The goal would be to produce an email reply that appears to respond to the spammer's email, and so the spammer would assume that the email is indeed legitimate...even though there is no real reason to assume the email is thus legitimate. Taking advantage of apophenia is a useful way for helping machine-generated text go farther, but it doesn't really help this organization succeed in producing 'smart' machines (after all, the machines doesn't know what it's writing, much less what it's responding to.)

Don't get me wrong. I am somewhat interested in this problem, and I think it's a solvable one, but I think the solutions I have in mind may not be the solutions you would prefer to see.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.