C++ Logo


Advanced search

Subject: Re: Dec 10 SG19 call
From: Michael Wong (fraggamuffin_at_[hidden])
Date: 2020-12-10 14:30:01

On Wed, Dec 9, 2020 at 11:12 AM Michael Wong <fraggamuffin_at_[hidden]> wrote:

> SG19 Machine Learning 2 hours. This session will focus on the 3rd review
> of Stats paper but with updates from all the others optionally. Links to
> paper coming.
> Hi,
> Michael Wong is inviting you to a scheduled Zoom meeting.
> Topic: SG19 monthly Dec 2020-Feb 2021
> Time: Dec 10, 2020 02:00 PM Eastern Time (US and Canada)
> Every month on the Second Thu, until Feb 11, 2021, 3 occurrence(s)
> Dec 10, 2020 02:00 PM ET 1900 UTC
> Jan 14, 2021 02:00 PM ET 1900 UTC
> Feb 11, 2021 02:00 PM ET 1900 UTC
> Please download and import the following iCalendar (.ics) files to
> your calendar system.
> Monthly:
> https://iso.zoom.us/meeting/tJctf-2tpzotGNHL5pZqwtjELee0mcG2zzCi/ics?icsToken=98tyKuCrrjMuH92UtxuCRowqAoqgLO_xmH5ajY11sEr1OTFEdgnTGudHYr98N4rK
> Join from PC, Mac, Linux, iOS or Android:
> https://iso.zoom.us/j/93084591725?pwd=K3QxZjJlcnljaE13ZWU5cTlLNkx0Zz09
> Password: 035530
> Or iPhone one-tap :
> US: +13017158592,,93084591725# or +13126266799,,93084591725#
> Or Telephone:
> Dial(for higher quality, dial a number based on your current
> location):
> US: +1 301 715 8592 or +1 312 626 6799 or +1 346 248 7799 or +1
> 408 638 0968 or +1 646 876 9923 or +1 669 900 6833 or +1 253 215 8782
> or 877 853 5247 (Toll Free)
> Meeting ID: 930 8459 1725
> Password: 035530
> International numbers available: https://iso.zoom.us/u/agewu4X97
> Or Skype for Business (Lync):
> https://iso.zoom.us/skype/93084591725
> Agenda:
> 1. Opening and introductions
> The ISO Code of conduct:
> https://www.iso.org/files/live/sites/isoorg/files/store/en/PUB100397.pdf
> The IEC Code of Conduct:
> https://basecamp.iec.ch/download/iec-code-of-conduct-for-delegates-and-experts/
> ISO patent policy.
> https://isotc.iso.org/livelink/livelink/fetch/2000/2122/3770791/Common_Policy.htm?nodeid=6344764&vernum=-2
> The WG21 Practices and Procedures and Code of Conduct:
> https://isocpp.org/std/standing-documents/sd-4-wg21-practices-and-procedures
> 1.1 Roll call of participants
Antony Peacock
Joe Sachs
Ozan Irsoy
Phil Ratzloff
Richard Dosselmann
Michael Chiu
Will Wray
William Moses
Scott McMillan
Larry Lewis
Michael Wong
Kens Maurer
Andrew Lumsdaine
Vissil Vassilev
Cyril Khazan

> 1.2 Adopt agenda
Stats paper

> 1.3 Approve minutes from previous meeting, and approve publishing
> previously approved minutes to ISOCPP.org
> 1.4 Action items from previous meetings
> 2. Main issues (125 min)
> 2.1 General logistics
> Meeting plan, focus on one paper per meeting but does not preclude other
> paper updates:
> Dec 10, 2020 02:00 PM ET1900 UTC Stats
> Jan 14, 2021 02:00 PM ET 1900 UTCReinforcement Learning and Diff
> Calculus
> Feb 11, 2021 02:00 PM 1900 UTC ET Graph
> ISO meeting status
> future C++ Std meetings
> 2.2 Paper reviews
> 2.2.1: ML topics
> Stats review Richard Dosselman et al
> P1708R3: Math proposal for Machine Learning: 3rd review
make it a D paper
updated in Sept
SaS mentioned member deviations
 everything in 4.1 are free standing functions
and also most in 4.2 as accumulator design to be done in a 1 pass
5 has discussion and issues

1. all very big in machine learning, competitive with python and sypy
3.1 simple arithmetic mean here, added geometric and harmonic, python did
not have weighted versions
3.2 Quantile is asked by Jolanta, in addition to mode using nth largest
3.3 mode is still there
3.4 skewness are also there and only in numpy extended library and not in
python showing how lopsided we are
3.4 kurtosis
3.6 Variance
3.7 Std dev
added walter Brown and Jolanta's concerned items
4. Walter ask that we use same style as <random> so it gets its own header
4.1 using ranges and Eric Niebler's proposal to have less processing on
user side, and more things automated
not too many concepts, just enough to protect everything
if you are doing the mode, then we want to able to support text
weighted version can support arithmetic type

4.1.1 Mean
using projections of a range
Also use auto as a return type per Walter Brown
4.1.1 if you are already using a floating value for range, that is
automatically your return type, per Jolanta suggestion
projections on the actual values
overloaded versions are still there per Michael

function declaration is close to what std spec synopsis
but what is auto doing here instead of result type, need Walter to answer,
auto without -> at the end meand implementation determines the return type,
unless you show the implementation inline, which is not recommended
the only non-deducible parameter is the result, then the most natural thing
is to do geometric mean of double because everything else is deduced
also had a discussion on the parameter order - yes need that order for
result of template argument and iresult depends on R and P
do you anticipate someone override the result template parameter for
intermediate accumulation as an intended use case? Yes ,
result is the intermediate thing
Ask this as a direct question for Walter and Jens, likely he meant there
should be auto with an arrow on the right end

is there an explicit desire for handling for a custom type for a big float?
Why, if not then why have an accumulator type ...? Yes this ties in with
Jens why not return the big integer and return the big float on the outside
might want everything in geometric mean to have a rational type as a result
of doing a division? May be over the top but I can see it
current support for non builtin because result needs to be nonarithmetic
type, can you do square root, logs, signed division, this proposal shoudl
not be bogged down - just be explicit that this does not support user
defined type
not worry about complex

projection compiles ok
 compute in one pass
using std:: stats::stats_range should be stats::range

example us structure binding and return 2 values

can you pass initializer list instead of q? yes, may be show an example of
it as it is a constant

which template parameter to deduce and which to override; so eecution
policy, r, C1, P1, can be deduced , but Key, Hash, KeyEqual can be
dont want to give all the over parameters when I just want to customize my
hash function, so may be better to just ask for a hash table type

4.2 accumulator object based on boost
allows one list, one pass over the list, computing 3 means in one pass

almost all of these can be specific instantiation of generic deduction ? We
discussed this last year, that everything is not far from
std:;accumulate/reduce as all a mean is accumulate, so stats people dont
understand the details and they prefer a wrapper

a way to minimize rounding error, are the mechanism to specify ways to
minimize it? pass a different type for the temporary accumulator else no
way to sort the value by magnitude before adding them - you are also
accumulating the error term, kahan summation ?OK perfect

if goal is to make it easy for non-expert and allow them to choose other
matters ? yes may be its time to address that
we dont have a concept in C++ for arithmetic type, so if we do something
like Kahan SummationHN? it would be hard so document and dont do it

4.4 mode
C and P are less important then others, except classes may be we want
deduction guides later
accumulating object is unique to us
destructor should be constexpr
constexpr on constructor may not be correct as it allocates memory if we
are building a hash table which I am not sure is made constexpr
so reconsider the constexpr here

use common name for all the mean_ variants
for auto can be a range based for loop

5.4 added trimmed mean from jolanta

Internalize customization

Move that we send this paper to LEWG modulo changes from this discussion
Aim for Jan 15

ship vehicle will be the IS and not a TR because this is independent
Have an implementation

PXXXX: combinatorics: 1st Review
> > std.org/jtc1/sc22/wg21/docs/papers/2020/p1708r2
> > above is the stats paper that was reviewed in Prague
> > http://wiki.edg.com/bin/view/Wg21prague/P1708R2SG19
> >
> > Review Jolanta Polish feedback.
> > http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2119r0.html
> Unit library cppcon 2020:
> https://www.youtube.com/watch?v=aN6-Kz0HqRw&feature=emb_logo
> Reinforcement Learning Larry Lewis Jorge Silva
> Reinforcement Learning proposal:
move to Feb
is there a paper on NN
mdarray using storage could work Graph Proposal Phil Ratsloff et al
> P1709R1: Graph Proposal for Machine Learning
> P1709R3:
> https://docs.google.com/document/d/1kLHhbSTX7j0tPeTYECQFSNx3R35Mu3xO5_dyYdRy4dM/edit?usp=sharing
> https://docs.google.com/document/d/1QkfDzGyfNQKs86y053M0YHOLP6frzhTJqzg1Ug_vkkE/edit?usp=sharing
> <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2119r0.html>
 working on concepts for graph and reconcile the proposals

> Differentiable Programming by Marco Foco
> <
> https://docs.google.com/document/d/1poXfr7mUPovJC9ZQ5SDVM_1Nb6oYAXlK_d0ljdUAtSQ/edit
> >
tensorflow community
Automatic diff as first class citizen of llvm IR : made a plugin that does
Vasil will give rough update of people's desires

> 2.2.3 any other proposal for reviews?
> 2.3 Other Papers and proposals
> P1416R1: SG19 - Linear Algebra for Data Science and Machine Learning
> https://docs.google.com/document/d/1IKUNiUhBgRURW-UkspK7fAAyIhfXuMxjk7xKikK4Yp8/edit#heading=h.tj9hitg7dbtr
> P1415: Machine Learning Layered list
> https://docs.google.com/document/d/1elNFdIXWoetbxjO1OKol_Wj8fyi4Z4hogfj5tLVSj64/edit#heading=h.tj9hitg7dbtr
> 2.2.2 SG14 Linear Algebra progress:
> Different layers of proposal
> https://docs.google.com/document/d/1poXfr7mUPovJC9ZQ5SDVM_1Nb6oYAXlK_d0ljdUAtSQ/edit
> 2.5 Future F2F meetings:
> 2.6 future C++ Standard meetings:
> https://isocpp.org/std/meetings-and-participation/upcoming-meetings
> None
> 3. Any other business
> New reflector
> http://lists.isocpp.org/mailman/listinfo.cgi/sg19
> Old Reflector
> https://groups.google.com/a/isocpp.org/forum/#!newtopic/sg19
> <https://groups.google.com/a/isocpp.org/forum/?fromgroups=#!forum/sg14>
> Code and proposal Staging area
> 4. Review
> 4.1 Review and approve resolutions and issues [e.g., changes to SG's
> working draft]
> 4.2 Review action items (5 min)
> 5. Closing process
> 5.1 Establish next agenda
> 5.2 Future meeting
> Jan 14, 2021 02:00 PM ET 1900 UTCReinforcement Learning and Diff
> Calculus
> Feb 11, 2021 02:00 PM 1900 UTC ET Graph

SG19 list run by sg19-owner@lists.isocpp.org

SG19 Archives on Google Groups