Hot answers tagged

9

I would set up a list of goals for your bot. These could be 'maintain a minimum level of health', 'knock out human player', 'block way to location X', etc. This obviously depends on the domain of your MMO. Then you can use a planner to achieve these goals in the game. You define a set of actions with preconditions and effects, set the current goal, and the ...


8

Oliver Mason's answer is great for specific methods and tools to use, but I wanted to pull out a more general principle which was mentioned in a comment. The distinction your friend is making is not one that would be generally recognised. One of my university lecturers defined AI as something like "an artificial system that exhibits behaviour that resembles ...


7

If you are coming from Java, it would make a lot of sense to play around with deeplearning4J at first. From there I would start learning python as this is the primary language used today in ML. Lectures are a great way to get your feet wet in understanding and applying ML concepts. My favorites are: Stanford ML(Andrew NG): https://www.youtube.com/watch?...


5

AI is a wonderful field to get into. Not only is it in high demand in the job market, it also helps you perceive the world in a whole new way. It's great that you have a deep interest in AI. In my opinion, you'll progress faster if you are having fun. Learning is always accelerated when you are curious and deeply interested in a particular domain or ...


4

While dyedgreen is right in some respects, I don't agree entirely with that sentiment. Sure, you can theoretically use any language as long as you know the maths and understand the concepts inside and out whilst having some applicable knowledge. However, I don't believe if you are starting from scratch, you should learn to develop models in Java. While the ...


4

Genetic algorithms work best when given a scalar fitness value that increases smoothly, so that you can compare two population members regardless of whether they failed or succeeded at the task. That usually requires you to analyse the problem, and come up with a measure that would improve as an individual gets closer to solving a task. It generally helps ...


3

You can train your bot using reinforcement learning (in particular Q-Learning). The most important part of the RL is a reward function. If we want agent to do some thing specific, we must provide rewards to it in such a way that it will achieve our goals. It is thus very important that the reward function accurately indicates the exact behaviour So you ...


3

I have been programming Java (also sometimes C++) since the 1990s, and wanted to get into AI in September 2017. I spent a lot of time with the Java implementation of TensorFlow, but I finally (after 1 month) gave up and started to learn Python. I bought the O'Reilly book "Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and ...


3

For a foundation, there is nothing better than Cybernetics by Norbert Wiener. It is surprising how advanced this MIT professor was, prior to Turing's thought experiment on a general purpose computing machine or the embodiment of the von Neumann architecture upon which most contemporary computers are based. In key ways his analysis of time series and ...


2

This looks like the kind of game that a Reinforcement Learning algorithm could learn to play. If you are learning from the game objects directly (as opposed to wanting to have the agent learn from viewing the screen), then it should be relatively straightforward to do so - by which I mean that it will involve some new concepts, a little maths, and maybe take ...


2

I don't think there is much merit in using one language over the other. It's true that you will get a better feeling for what libraries etc. are available in Python when using it, but I think it's more important to focus on the mathematics and application of the algorithms and techniques you will learn, as these will be relevant regardless of the language / ...


2

I suspect that you'll have to remove this code: if (field.isWinningMove(movePlayed, C4Symbol.BLUE)) { field.playMove(movePlayed, C4Symbol.RED); return new NextMove(BLUE_WIN, movePlayed); } from the max() method, and remove this code: if (field.isWinningMove(movePlayed, C4Symbol.RED)) { field.playMove(movePlayed, ...


2

Fixed. Was an issue with the random generator. In my class for the Neuron layer where I initialize the weights I get new doubles from the generator for each of the initial weight values, but I found a bug where I was re-initializing the random generator, which was of course causing different values.


2

I'm going to go ahead and disagree with the others. From an academic perspective for AI or any CS related assignment Java (or C or C++) will always have much more benefit as you will get to write the actual code instead of using libraries others have already written. That way later on when you transition to Python or whatever language you choose you'll ...


2

I recommend preprocessing images and feeding pixel values of several combined images. Some ideas: Preprocess all images to grayscale if possible. It’ll reduce the number of input neurons. (As long as this step doesn’t introduce large overhead) Select some $\gamma$ value such that 0 < $\gamma$ < 1. Generate (ie. Select from your game) $n$ sequential ...


2

The most generic approach is to input all pixels as you have suggested. A CNN would be the best architecture for that. To provide information like speed or velocity, you can feed more than one frame to the CNN (e.g. the last 5 frames or whatever provides enough information). The CNN can learn movement information by comparing those images. If you want to ...


1

If you only have a labeled set of emails, it is definitely not enough - you need to extract features from the text, like common words, existence of the title, etc. For the ID3 algorithm you need to work with entropy, $$H(x) = -(p_-log_2p_- + p_+log_2p_+)$$ And information gain, $$IG(x) = H(x) - \sum_{i=1}^{q}\dfrac{|\Delta y_i|}{|\Delta y|}H(y_i)$$ $q$ -...


1

Before thinking about implementation details such as what data structures to use, consider what you need as input for the ID3 algorithm. You need a training set which comprises a list of categorised objects (your email, categorised as 'spam' or 'ham'), where each object is represented as a list of features (preferably binary, but not necessarily). What ...


1

The Direct Answer to Your Question:-- I recommend: Automate the Boring Stuff with Python: Practical Programming for Total Beginners. " ... Does anyone know a good book to buy for beginners to coding for artificial intelligence? ... " ~ Stephen Messing (Stack Exchange user) The key word here is beginners. A very serious issue with people studying ...


1

Introduction to statistical learning is sort of a resource for the tools that go into AI programming, with some exercises in R. Elements of statistical learning is the more scientific and math / theory heavy version of ISL. I’m reading that one now. They are both freely available from Stanford online at the links above.


Only top voted, non community-wiki answers of a minimum length are eligible