<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://airwiki.elet.polimi.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=FabrizioBonfanti</id>
		<title>AIRWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://airwiki.elet.polimi.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=FabrizioBonfanti"/>
		<link rel="alternate" type="text/html" href="https://airwiki.elet.polimi.it/index.php/Special:Contributions/FabrizioBonfanti"/>
		<updated>2026-04-06T16:33:04Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.6</generator>

	<entry>
		<id>https://airwiki.elet.polimi.it/index.php?title=Player_modeling_in_TORCS_exploiting_SVMs_and_GPUs_parallelism&amp;diff=4653</id>
		<title>Player modeling in TORCS exploiting SVMs and GPUs parallelism</title>
		<link rel="alternate" type="text/html" href="https://airwiki.elet.polimi.it/index.php?title=Player_modeling_in_TORCS_exploiting_SVMs_and_GPUs_parallelism&amp;diff=4653"/>
				<updated>2008-10-30T16:05:41Z</updated>
		
		<summary type="html">&lt;p&gt;FabrizioBonfanti: /* '''Part 2: Project description''' */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Part 1: Project profile''' ==&lt;br /&gt;
&lt;br /&gt;
=== Project name ===&lt;br /&gt;
&lt;br /&gt;
Player modeling in TORCS exploiting SVMs and GPUs parallelism&lt;br /&gt;
&lt;br /&gt;
=== Project short description ===&lt;br /&gt;
&lt;br /&gt;
This project is aimed at building a TORCS' driving agent, using SVMs (Support Vector Machines) as the main Machine Learning algorithm. This agent (also called Bot) must be able to drive versus other agents, with comparable or better performances.&lt;br /&gt;
To fulfill this achievement, and to be able to train SVMs in feasible time, this work will initially focuses on using the CUDA architecture to rewrite and optimize a well-known SVM Toolkit, LibSVM.&lt;br /&gt;
&lt;br /&gt;
=== Dates ===&lt;br /&gt;
Start date: ~2008/03/01&lt;br /&gt;
&lt;br /&gt;
End date: ~2009/03/01&lt;br /&gt;
&lt;br /&gt;
=== Website(s) ===&lt;br /&gt;
&lt;br /&gt;
http://cig.dei.polimi.it&lt;br /&gt;
&lt;br /&gt;
=== People involved ===&lt;br /&gt;
&lt;br /&gt;
===== Project head(s) =====&lt;br /&gt;
&lt;br /&gt;
P. L. Lanzi - [[User:PierLucaLanzi]]&lt;br /&gt;
&lt;br /&gt;
D. Loiacono - [[User:DanieleLoiacono]]&lt;br /&gt;
&lt;br /&gt;
===== Other Politecnico di Milano people =====&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===== Students currently working on the project =====&lt;br /&gt;
&lt;br /&gt;
Fabrizio Bonfanti - [[User:FabrizioBonfanti]]&lt;br /&gt;
&lt;br /&gt;
===== Students who worked on the project in the past =====&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===== External personnel =====&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
=== Laboratory work and risk analysis ===&lt;br /&gt;
&lt;br /&gt;
This is meant to be a software project, and all required hardware is used remotely, so no laboratory work is expected.&lt;br /&gt;
No risks are associated to this project, hopefully.&lt;br /&gt;
&lt;br /&gt;
== '''Part 2: Project description''' ==&lt;br /&gt;
&lt;br /&gt;
Currently, my CUDA implementation is being developed, and has already survived lots of problems.&lt;br /&gt;
Read on for a small briefing of the most important milestones.&lt;br /&gt;
&lt;br /&gt;
=== The really first implementation ===&lt;br /&gt;
This implementation was the first funcional one, it supported c-SVM and was tested against a good package of datasets.&lt;br /&gt;
&lt;br /&gt;
'''Pros:'''&lt;br /&gt;
* Same results (nu, rho, sv, bsv, prediction %) compared to LibSVM&lt;br /&gt;
&lt;br /&gt;
'''Cons:'''&lt;br /&gt;
* The Q matrix (#data x #data) was completely calculated before the real training&lt;br /&gt;
** Memory cost&lt;br /&gt;
** Speed cost&lt;br /&gt;
** Could handle problems with less than ~7000 vectors&lt;br /&gt;
* Slower than LibSVM on nearly all the training datasets&lt;br /&gt;
&lt;br /&gt;
=== The second implementation ===&lt;br /&gt;
Since results weren't as good as I expected, I decided to take another direction, effectively trashing the old work and starting fron scratch.&lt;br /&gt;
&lt;br /&gt;
'''Pros:'''&lt;br /&gt;
* New algorithm, focalised on c-SVM without any LibSVM's optimization&lt;br /&gt;
* Nearly same results (nu, rho, sv, bsv, prediction %) compared to LibSVM&lt;br /&gt;
* Lines of Q are now calculated on demand&lt;br /&gt;
** Freed a lot of memory&lt;br /&gt;
* Can solve problems of nearly any cardinality (limited by the GPU memory, however the biggest correctly solved was ~60000 vectors)&lt;br /&gt;
* Reached 3x speedup on a pair of dataset, still slower than 1x on the vast majority&lt;br /&gt;
* Tested on more datasets&lt;br /&gt;
&lt;br /&gt;
'''Cons:'''&lt;br /&gt;
* Necessity of some kind of Q-caching, not easy to do on this implementation&lt;br /&gt;
* Time depends heavily on the number of iterations, since rows are calculated on demand&lt;br /&gt;
* Why the speedup is so variable was still not clear&lt;br /&gt;
&lt;br /&gt;
=== The third implementation ===&lt;br /&gt;
My assignment changed, and the implementation of epsilon-SVR was required too.&lt;br /&gt;
Looking at the math behind the two earlier implementations, I saw that there really weren't a lot of conceptual differences, so I decided to return back on the first implementation, adding the features that were working on the second one.&lt;br /&gt;
Speedup is very variable, but it seems that this implementation works better with big problems. I suspect that the major point of speedup is about calculate the lines of Q, so problems with higher cardinality gain effectively a lot on this phase.&lt;br /&gt;
&lt;br /&gt;
'''Pros:'''&lt;br /&gt;
&lt;br /&gt;
* epsilon-SVR ossibility added to the c-SVC implementation&lt;br /&gt;
* Same results (nu, rho, sv, bsv, prediction %) compared to LibSVM&lt;br /&gt;
* Lines of Q are now calculated on demand&lt;br /&gt;
** Freed a lot of memory&lt;br /&gt;
* Lines of Q are now cached&lt;br /&gt;
** Speed gain&lt;br /&gt;
* Can solve problems of nearly any cardinality (limited by the GPU memory, however the biggest correctly solved was ~60000 vectors)&lt;br /&gt;
* Reached 4x speedup on a pair of dataset, still slower than 1x on the smaller problems&lt;br /&gt;
* Tested on more and more datasets&lt;br /&gt;
&lt;br /&gt;
'''Cons:'''&lt;br /&gt;
* Some point of the algorithm are nearly blocking&lt;br /&gt;
* Overlaps of data transfer and CUDA executions are not exploited&lt;br /&gt;
** The algorithm itself is very serial&lt;br /&gt;
** Caching needs to serialize the lookup phase (CPU) and the calculus (GPU, if required)&lt;br /&gt;
* Time depends heavily on the number of iterations, since rows are calculated on demand&lt;br /&gt;
&lt;br /&gt;
=== Now ===&lt;br /&gt;
Now, I'm working again on the last implementation. I'm testing times/performances on a lot of datasets, and I'm also studying how the SVM's parameters can change the overall performance.&lt;br /&gt;
&lt;br /&gt;
I'm also looking if parallelizing multiple SVMs is feasible. My guess is that it is possible, but looking at the nature of the algorithm, I think the performance gain wouldn't be so high.&lt;br /&gt;
&lt;br /&gt;
== '''Part 3: Useful links''' ==&lt;br /&gt;
&lt;br /&gt;
TORCS - http://torcs.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
LibSVM - http://www.csie.ntu.edu.tw/~cjlin/libsvm/&lt;br /&gt;
&lt;br /&gt;
CUDA - http://www.nvidia.com/object/cuda_home.html&lt;/div&gt;</summary>
		<author><name>FabrizioBonfanti</name></author>	</entry>

	<entry>
		<id>https://airwiki.elet.polimi.it/index.php?title=User:FabrizioBonfanti&amp;diff=3790</id>
		<title>User:FabrizioBonfanti</title>
		<link rel="alternate" type="text/html" href="https://airwiki.elet.polimi.it/index.php?title=User:FabrizioBonfanti&amp;diff=3790"/>
				<updated>2008-07-14T13:16:50Z</updated>
		
		<summary type="html">&lt;p&gt;FabrizioBonfanti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Userbox header|Fabrizio Bonfanti}}&lt;br /&gt;
{{Userbox generic|First Name|Fabrizio}}&lt;br /&gt;
{{Userbox generic|Last Name|Bonfanti}}&lt;br /&gt;
{{Userbox generic|E-mail|Try@asking :)}}&lt;br /&gt;
{{Userbox link|Project page|Player modeling in TORCS exploiting SVMs and GPUs parallelism}}&lt;br /&gt;
&lt;br /&gt;
{{Userbox footer}}&lt;br /&gt;
===Welcome to my user page.===&lt;br /&gt;
&lt;br /&gt;
Umh... Not much to say about me, I'm a 24 y.o. student working hard on his final Thesis.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Current Works===&lt;br /&gt;
* [[Player modeling in TORCS exploiting SVMs and GPUs parallelism]]&lt;br /&gt;
&lt;br /&gt;
Actually, I'm working to optimize SVMs algorithms, exploiting the power of high-speed parallel computation on GPUs.&lt;br /&gt;
The final objective of my current assignment is to train SVMs to control successfully a competition car, using TORCS as game engine.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===My interests:===&lt;br /&gt;
&lt;br /&gt;
* AI in general&lt;br /&gt;
* Machine Learning&lt;br /&gt;
* OpenGL&lt;br /&gt;
* Games, but I'm not an avid player :)&lt;/div&gt;</summary>
		<author><name>FabrizioBonfanti</name></author>	</entry>

	<entry>
		<id>https://airwiki.elet.polimi.it/index.php?title=Player_modeling_in_TORCS_exploiting_SVMs_and_GPUs_parallelism&amp;diff=3788</id>
		<title>Player modeling in TORCS exploiting SVMs and GPUs parallelism</title>
		<link rel="alternate" type="text/html" href="https://airwiki.elet.polimi.it/index.php?title=Player_modeling_in_TORCS_exploiting_SVMs_and_GPUs_parallelism&amp;diff=3788"/>
				<updated>2008-07-14T13:12:04Z</updated>
		
		<summary type="html">&lt;p&gt;FabrizioBonfanti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Part 1: Project profile''' ==&lt;br /&gt;
&lt;br /&gt;
=== Project name ===&lt;br /&gt;
&lt;br /&gt;
Player modeling in TORCS exploiting SVMs and GPUs parallelism&lt;br /&gt;
&lt;br /&gt;
=== Project short description ===&lt;br /&gt;
&lt;br /&gt;
This project is aimed at building a TORCS' driving agent, using SVMs (Support Vector Machines) as the main Machine Learning algorithm. This agent (also called Bot) must be able to drive versus other agents, with comparable or better performances.&lt;br /&gt;
To fulfill this achievement, and to be able to train SVMs in feasible time, this work will initially focuses on using the CUDA architecture to rewrite and optimize a well-known SVM Toolkit, LibSVM.&lt;br /&gt;
&lt;br /&gt;
=== Dates ===&lt;br /&gt;
Start date: ~2008/03/01&lt;br /&gt;
&lt;br /&gt;
End date: ~2009/03/01&lt;br /&gt;
&lt;br /&gt;
=== Website(s) ===&lt;br /&gt;
&lt;br /&gt;
http://cig.dei.polimi.it&lt;br /&gt;
&lt;br /&gt;
=== People involved ===&lt;br /&gt;
&lt;br /&gt;
===== Project head(s) =====&lt;br /&gt;
&lt;br /&gt;
P. L. Lanzi - [[User:PierLucaLanzi]]&lt;br /&gt;
&lt;br /&gt;
D. Loiacono - [[User:DanieleLoiacono]]&lt;br /&gt;
&lt;br /&gt;
===== Other Politecnico di Milano people =====&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===== Students currently working on the project =====&lt;br /&gt;
&lt;br /&gt;
Fabrizio Bonfanti - [[User:FabrizioBonfanti]]&lt;br /&gt;
&lt;br /&gt;
===== Students who worked on the project in the past =====&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===== External personnel =====&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
=== Laboratory work and risk analysis ===&lt;br /&gt;
&lt;br /&gt;
This is meant to be a software project, and all required hardware is used remotely, so no laboratory work is expected.&lt;br /&gt;
No risks are associated to this project, hopefully.&lt;br /&gt;
&lt;br /&gt;
== '''Part 2: Project description''' ==&lt;br /&gt;
&lt;br /&gt;
Work in Progress...&lt;br /&gt;
&lt;br /&gt;
== '''Part 3: Useful links''' ==&lt;br /&gt;
&lt;br /&gt;
TORCS - http://torcs.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
LibSVM - http://www.csie.ntu.edu.tw/~cjlin/libsvm/&lt;br /&gt;
&lt;br /&gt;
CUDA - http://www.nvidia.com/object/cuda_home.html&lt;/div&gt;</summary>
		<author><name>FabrizioBonfanti</name></author>	</entry>

	<entry>
		<id>https://airwiki.elet.polimi.it/index.php?title=Projects&amp;diff=3787</id>
		<title>Projects</title>
		<link rel="alternate" type="text/html" href="https://airwiki.elet.polimi.it/index.php?title=Projects&amp;diff=3787"/>
				<updated>2008-07-14T12:59:55Z</updated>
		
		<summary type="html">&lt;p&gt;FabrizioBonfanti: /* Machine Learning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This page is a repository of links to the pages describing the '''projects''' we are currently working on at AIRLab. &lt;br /&gt;
See the list of our finished projects on the [[Finished Projects]] page.''&lt;br /&gt;
&lt;br /&gt;
== Ongoing projects ==&lt;br /&gt;
''by research area (areas are defined in the [[Main Page]]); for each project a name and a link to its AIRWiki page is given''&lt;br /&gt;
&lt;br /&gt;
==== [[Agents, Multiagent Systems, Agencies]] ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* [[Multiagent cooperation|Multiagent cooperating system]]&lt;br /&gt;
&lt;br /&gt;
* [[Planning in Ambient Intelligence scenarios| Planning in Ambient Intelligence scenarios]]&lt;br /&gt;
&lt;br /&gt;
==== [[BioSignal Analysis]] ====&lt;br /&gt;
----&lt;br /&gt;
====== [[Affective Computing]] ======&lt;br /&gt;
&lt;br /&gt;
* [[Relatioship between Cognition and Emotion in Rehabilitation Robotics]]&lt;br /&gt;
* [[Driving companions]]&lt;br /&gt;
* [[Emotion from Interaction]]&lt;br /&gt;
* [[Affective Devices]]&lt;br /&gt;
&lt;br /&gt;
====== [[Brain-Computer Interface]] ======&lt;br /&gt;
&lt;br /&gt;
* [[Online P300 and ErrP recognition with BCI2000]]&lt;br /&gt;
* [[BCI based on Motor Imagery]]&lt;br /&gt;
* [[Graphical user interface for an autonomous wheelchair]]&lt;br /&gt;
* [[Mu and beta rhythm-based BCI]]&lt;br /&gt;
&lt;br /&gt;
====== [[Automatic Detection Of Sleep Stages]] ======&lt;br /&gt;
&lt;br /&gt;
* [[Sleep Staging with HMM]]&lt;br /&gt;
&lt;br /&gt;
====== [[Analysis of the Olfactory Signal]] ======&lt;br /&gt;
&lt;br /&gt;
* [[Lung Cancer Detection by an Electronic Nose]]&lt;br /&gt;
* [[HE-KNOWS - An electronic nose]]&lt;br /&gt;
&lt;br /&gt;
==== [[Computer Vision and Image Analysis]] ====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* [[Automated extraction of laser streaks and range profiles]]&lt;br /&gt;
&lt;br /&gt;
* [[Data collection for mutual calibration|Data collection for laser-rangefinder and camera calibration]]&lt;br /&gt;
&lt;br /&gt;
* [[Image retargeting by k-seam removal]]&lt;br /&gt;
&lt;br /&gt;
* [[Particle filter for object tracking]]&lt;br /&gt;
&lt;br /&gt;
* [[Template based paper like reconstruction when the edges are straight]]&lt;br /&gt;
&lt;br /&gt;
* [[Wii Remote headtracking and active projector]]&lt;br /&gt;
&lt;br /&gt;
* [[Vision module for the Milan Robocup Team]]&lt;br /&gt;
&lt;br /&gt;
* [[Long Exposure Images for Resource-constrained video surveillance]]&lt;br /&gt;
&lt;br /&gt;
* [[NonPhotorealistic rendering of speed lines]].&lt;br /&gt;
&lt;br /&gt;
* [[Restoration of blurred objects using cues from the alpha matte]]&lt;br /&gt;
&lt;br /&gt;
* [[Analyzing Traffic Speed From a Single Night Image - Light Streaks Detection]]&lt;br /&gt;
&lt;br /&gt;
* [[Plate detection algorithm]]&lt;br /&gt;
&lt;br /&gt;
* [[A vision-based 3D input device for space curves]]&lt;br /&gt;
&lt;br /&gt;
==== [[Machine Learning]] ====&lt;br /&gt;
----&lt;br /&gt;
* [[Adaptive Reinforcement Learning Multiagent Coordination in Real-Time Computer Games|Adaptive Reinforcement Learning Multiagent Coordination in Real-Time Computer Games]]&lt;br /&gt;
&lt;br /&gt;
* [[B-Smart Behaviour Sequence Modeler and Recognition tool|B-Smart Behaviour Sequence Modeler and Recognition tool]]&lt;br /&gt;
&lt;br /&gt;
* [[Player modeling in TORCS exploiting SVMs and GPUs parallelism|Player modeling in TORCS exploiting SVMs and GPUs parallelism]]&lt;br /&gt;
&lt;br /&gt;
==== [[Ontologies and Semantic Web]] ====&lt;br /&gt;
----&lt;br /&gt;
* [[Extending a wiki with semantic templates]]&lt;br /&gt;
* [[GeoOntology|Geographic ontology for a semantic wiki]]&lt;br /&gt;
&lt;br /&gt;
==== [[Philosophy of Artificial Intelligence]] ====&lt;br /&gt;
----&lt;br /&gt;
==== [[Robotics]] ====&lt;br /&gt;
----&lt;br /&gt;
===== [[Robot development]] =====&lt;br /&gt;
* [[LURCH - The autonomous wheelchair]]&lt;br /&gt;
&lt;br /&gt;
* [[Balancing robots: Tilty, TiltOne]]&lt;br /&gt;
&lt;br /&gt;
* [[ Brake Padal Implementing on a Golf Cart ]]&lt;br /&gt;
&lt;br /&gt;
===== [[Benchmarking]] =====&lt;br /&gt;
&lt;br /&gt;
* [[Rawseeds|RAWSEEDS]]&lt;br /&gt;
&lt;br /&gt;
===== [[Bio Robotics]] =====&lt;br /&gt;
&lt;br /&gt;
* [[PoliManus]]&lt;br /&gt;
&lt;br /&gt;
* [[ZOIDBERG - An autonomous bio-inspired RoboFish]]&lt;br /&gt;
&lt;br /&gt;
* [[Styx The 6 Whegs Robot]]&lt;br /&gt;
&lt;br /&gt;
* [[PolyGlove: a body-based haptic interface]]&lt;br /&gt;
&lt;br /&gt;
* [[ULISSE]]&lt;br /&gt;
&lt;br /&gt;
* [[PEKeB: a PiezoElectric KeyBoard]]&lt;br /&gt;
&lt;br /&gt;
* [[Anthropomorphic Robotic Wrist]] &lt;br /&gt;
&lt;br /&gt;
===== [[Robogames]] =====&lt;br /&gt;
&lt;br /&gt;
* [[ROBOWII]]	&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Note for students ==	&lt;br /&gt;
&lt;br /&gt;
If you are a student and there isn't a '''page describing your project''', this is because YOU have the task of creating it and populating it with (meaningful) content. If you are a student and there IS a page describing your project, you have the task to complete that page with (useful and comprehensive) information about your own contribution to the project. Be aware that the quality of your work (or lack of it) on the AIRWiki will be evaluated by the Teachers and will influence your grades.&lt;br /&gt;
&lt;br /&gt;
Instructions to add a new project or to add content to an existing project page are available at [[Projects - HOWTO]].&lt;/div&gt;</summary>
		<author><name>FabrizioBonfanti</name></author>	</entry>

	</feed>